﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class УправлениеЗапасамиРасширеннаяАналитика
	{
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//ОБЩИЕ ПРОЦЕДУРЫ И ФУНКЦИИ
		// Функция возвращает список кодов операций для документа
		//
		// Параметры:
		//  Документ - ссылка на документ, для которого нужно определить код операции,
		//  СтруктураШапкиДокумента - структура, содержащая реквизиты шапки документа,
		//  ИмяТабличнойЧасти - имя табличной части, для которой определяется код операции,
		//  ИмяДокумента - переменная, в которую возвращается строковое представление имени документа.
		//
		// Возвращаемое значение:
		//  Структра, содержащая список кодов операций.
		//

		public object ПолучитьКодОперацииПоДокументу(/*Документ, СтруктураШапкиДокумента, ИмяТабличнойЧасти, ИмяДокумента = ""*/)
		{
			//СтруктураКодовОпераций = Новый Структура();
			//ИмяДокумента = "";
			/*// Важно: перечисления, описанные в этой функции должны быть в составе типов колонки
*/
			/*// "КодОперации" таблицы значений "ТаблицаДляФормированияДвижений", формируемой в ПодготовитьТаблицуДляФормированияДвижений() 
*/
			/*// В противном случае не будет заполнен код операции в регистре.
*/
			//ИмяПеречисления = "КодыОперацийПартииТоваров";
			if(true/*ТипЗНЧ(Документ) = Тип("ДокументСсылка.ОтчетОРозничныхПродажах")*/)
			{
				//ИмяДокумента = "ОтчетОРозничныхПродажах";
				//СтруктураКодовОпераций.Вставить("Реализация");
				if(true/*ИмяТабличнойЧасти = "ТаблицаПоКомплектам"*/)
				{
					//СтруктураКодовОпераций.Вставить("Комплектация");
				}
			}
			if(true/*НЕ СтруктураКодовОпераций.Количество() = 0*/)
			{
			}
			return null;
		}
		//ПолучитьКодОперацииПоДокументу()
		// Функция возвращает структуру наборов записей в зависимости от видов учета, в которых отражается данный документ
		//
		// Параметры:
		//  Источник - документ, для которого определяются наборы записей,
		//
		// Возвращаемое значение:
		//  Структура, содержащая список наборов записей.
		//

		public object ПолучитьСтруктуруНаборовЗаписейПоВидамУчета(/*Источник*/)
		{
			//СтруктураНаборов = Новый Структура();
			if(true/*Источник.мСтруктураШапкиДокумента.ОтражатьВУправленческомУчете*/)
			{
				if(true/*УправлениеЗапасами.ИспользуетсяУправленческийУчетЗатрат()*/)
				{
					if(true/*ТипЗНЧ(Источник.Движения) = Тип("Структура")*/)
					{
						if(true/*НЕ Источник.Движения.Свойство("УчетЗатрат")*/)
						{
							//Источник.Движения.Вставить("УчетЗатрат", РегистрыНакопления.УчетЗатрат.СоздатьНаборЗаписей());
							//Источник.Движения.УчетЗатрат.Отбор.Регистратор.Установить(Источник.Ссылка);
						}
					}
					//СтруктураНаборов.Вставить("УчетЗатрат", Источник.Движения.УчетЗатрат);
				}
			}
			if(true/*Источник.мСтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете*/)
			{
				if(true/*ТипЗНЧ(Источник.Движения) = Тип("Структура")*/)
				{
					if(true/*НЕ Источник.Движения.Свойство("УчетЗатратРегл")*/)
					{
						//Источник.Движения.Вставить("УчетЗатратРегл", РегистрыНакопления.УчетЗатратРегл.СоздатьНаборЗаписей());
						//Источник.Движения.УчетЗатратРегл.Отбор.Регистратор.Установить(Источник.Ссылка);
					}
				}
				//СтруктураНаборов.Вставить("УчетЗатратРегл", Источник.Движения.УчетЗатратРегл);
			}
			return null;
		}
		//ПолучитьСтруктуруНаборовЗаписейПоВидамУчета()
		// Процедура дополняет структуру шапки документа дополнительными полями, необходимыми для проведения по регистрам УчетЗатрат и УчетЗатратРегл
		//
		// Параметры:
		//  СтруктураШапкиДокумента - структура, содержащая реквизиты шапки документа.
		//

		public void ДополнитьСтруктуруШапкиДополнительнымиПолямиУчетаЗатрат(/*СтруктураШапкиДокумента*/)
		{
			if(true/*СтруктураШапкиДокумента.ОтражатьВУправленческомУчете*/)
			{
				//СпособВеденияПартионногоУчетаПоОрганизацииДляУУ = УправлениеЗапасами.ПолучитьСпособВеденияПартионногоУчетаПоОрганизации(СтруктураШапкиДокумента.Организация, СтруктураШапкиДокумента.Дата);
				//СтруктураШапкиДокумента.Вставить("ОрганизацияУправленческийУчет",УправлениеЗапасами.ПолучитьОрганизациюВСоответствииСоСпособомВеденияПартионногоУчетаПоОрганизациям(СтруктураШапкиДокумента.Организация, СпособВеденияПартионногоУчетаПоОрганизацииДляУУ));
			}
			if(true/*СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете*/)
			{
				//УчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(СтруктураШапкиДокумента.Дата, СтруктураШапкиДокумента.Организация);
				if(true/*НЕ ЗначениеЗаполнено(УчетнаяПолитика)
		  ИЛИ УчетнаяПолитика.ВидУчетаТЗР = Перечисления.ВариантыУчетаТЗР.ВключениеВФактическуюСтоимость*/)
				{
					//СтруктураШапкиДокумента.Вставить("ТЗРНаСчете15",Ложь);
				}
			}
		}
		//ДополнитьСтруктуруШапкиДополнительнымиПолямиУчетаЗатрат()
		// Процедура очищает, в таблице "Результат" колонки, которые не должны заполняться в соответствии с настройками учетной политики
		//
		// Параметры:
		//  ИмяРегистра - имя регистра "УчетЗатрат" или "УчетЗатратРегл" по которому будут выполняться движения,
		//  СтруктураШапкиДокумента - структура, содержащая реквизиты шапки документа,
		//  Результат - таблица значений, по которой будут формироваться движения по регистру,
		//  НаборСтрокТабличнойЧасти - массив строк исходной табличной части документа, по которому была сформирована таблица "Результат".
		//

		public void ОчиститьКолонкиВСоответствииСНастройкамиУчетнойПолитики(/*ИмяРегистра, СтруктураШапкиДокумента, Результат, НаборСтрокТабличнойЧасти*/)
		{
			/*//Очистим склад
*/
			//УчетнаяПолитика = глЗначениеПеременной("ПараметрыПартионногоУчета");
			if(true/*ИмяРегистра = "УчетЗатрат"*/)
			{
				//ВестиПартионныйУчетПоСкладам = УчетнаяПолитика.ВестиПартионныйУчетПоСкладам;
			}
			if(true/*НЕ ВестиПартионныйУчетПоСкладам*/)
			{
				//Результат.ЗаполнитьЗначения(Неопределено, "Склад");
			}
			/*//Очистим серию
*/
			//НомерТекущейСтроки = 0;
		}
		//ОчиститьКолонкиВСоответствииСНастройкамиУчетнойПолитики
		// Функция выполняет общие для всех документов проверки на необходимость формировать движения по строке документа
		//
		// Параметры:
		//  СтрокаДокумента - строка таблицы значений,
		//  ТабличнаяЧасть - таблица значений
		//
		// Возвращаемое значение:
		//  Булево, если движения формировать нужно, то Истина.
		//

		public object ПроверитьНеобходимостьФормированияДвиженийПоСтрокеДокумента(/*СтрокаДокумента, ТабличнаяЧасть*/)
		{
			/*//По принятым МПЗ движения по регистрам учета затрат не формируются
*/
			if(true/*ТабличнаяЧасть.Колонки.Найти("ПринадлежностьНоменклатуры") <> Неопределено*/)
			{
				if(true/*ЗначениеЗаполнено(СтрокаДокумента.ПринадлежностьНоменклатуры)*/)
				{
				}
			}
			if(true/*ТабличнаяЧасть.Колонки.Найти("СтатусМатериальныхЗатрат") <> Неопределено*/)
			{
				if(true/*СтрокаДокумента.СтатусМатериальныхЗатрат = Перечисления.СтатусыМатериальныхЗатратНаПроизводство.ПринятыеВПереработку*/)
				{
				}
			}
			if(true/*ТабличнаяЧасть.Колонки.Найти("СтатьяЗатрат") <> Неопределено*/)
			{
				if(true/*ЗначениеЗаполнено(СтрокаДокумента.СтатьяЗатрат)
		  И СтрокаДокумента.СтатьяЗатрат.СтатусМатериальныхЗатрат = Перечисления.СтатусыМатериальныхЗатратНаПроизводство.ПринятыеВПереработку*/)
				{
				}
			}
			return null;
		}
		//ПроверитьНеобходимостьФормированияДвиженийПоСтрокеДокумента()
		// Функция возвращает таблицу значений в соответствии правилам преобразования
		//
		// Параметры:
		//
		//	Шаблон						- mxl документ, содержащий правила преобразования. Хранить такой Шаблон предлагается в метаданных для каждого регистра. Образец такого шаблона представлен в приложении 1.
		//	СтруктураШапкиДокумента		- структра в которой закэшированы параметры шапки
		//	ТабличнаяЧасть				- таблица значений, содержащая нужную табличную часть из переменной СтруктураТабличныхЧастей.
		//	ИмяПравилаПреобразования	- строка, содержащая имя правила (ключ) по которому будет производиться поиск в шаблоне.
		//

		public object ПолучитьСтруктуруДанныхВСоответствииСШаблоном(/*ИмяРегистра, СтруктураШапкиДокумента, ТабличнаяЧасть, ИмяПравилаПреобразования*/)
		{
			//Шаблон = РегистрыНакопления[ИмяРегистра].ПолучитьМакет("ПараметрыФормированияДвижений");
			//ПЗ = Новый ПостроительЗапроса;
			//ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(Шаблон.Область("ПравилаПреобразования"));
			//ПЗ.Выполнить();
			//ВсеПравилаПреобразования = ПЗ.Результат.Выгрузить();
			//ПравилаПреобразования = ВсеПравилаПреобразования.Найти(ИмяПравилаПреобразования, "ИмяПравилаПреобразования");
			if(true/*ПравилаПреобразования = Неопределено*/)
			{
			}
			//ТекстСтрокаДокумента = НРег("СтрокаДокумента.");
			//ДлинаТекстСтрокаДокумента = СтрДлина(ТекстСтрокаДокумента);
			/*// Получим список колонок табличной части
*/
			//КолонкиТабличнойЧасти = "";
			//СписокКолонокТабличнойЧасти = Новый СписокЗначений;
			//СтруктураЗначенийСвойств = Новый Структура;
			//НаборСтрокТабличнойЧасти = Новый Массив();
			if(true/*НаборСтрокТабличнойЧасти.Количество() = 0*/)
			{
			}
			/*//Составим список колонок результирующей таблицы, которые можно получить из исходной переименованием
*/
			/*// На основании полученного списка колонок табличной части скопируем табличную часть.
*/
			if(true/*КолонкиТабличнойЧасти = ""*/)
			{
				//Результат = Новый ТаблицаЗначений;
				//Результат.Колонки.Добавить("СтрокаИсходнойТаблицы");
			}
			/*// Заполним остальные колонки данными (из шапки, значения перечисления и т.п.)
*/
			//МассивТипов = Новый Массив;
			/*//Очистим колонки в соответствии с настройками учетной политики
*/
			//ОчиститьКолонкиВСоответствииСНастройкамиУчетнойПолитики(ИмяРегистра, СтруктураШапкиДокумента, Результат, НаборСтрокТабличнойЧасти);
			return null;
		}
		// ПолучитьСтруктуруДанныхВСоответствииСШаблоном
		// Функция возвращает счет НУ соответствующий переданному счету БУ
		//
		// Параметры:
		//  СчетУчетаБУ - счет БУ,
		//
		// Возвращаемое значение:
		//  Счет НУ.
		//

		public object ПолучитьСчетНУ(/*СчетУчетаБУ*/)
		{
			return null;
		}
		//ПолучитьСчетНУ()
		// Функция определяет наличие разницы согласно ПБУ18/02
		//
		// Параметры:
		//  СчетУчетаБУ - счет БУ,
		//  СчетУчетаНУ - счет НУ.
		//
		// Возвращаемое значение:
		//  Булево, Истина - в случае если разница есть.
		//

		public object ЕстьНалоговаяРазница(/*СчетУчетаБУ, СчетУчетаНУ*/)
		{
			//СчетУчетаНУ2 = ПолучитьСчетНУ(СчетУчетаБУ);
			if(true/*ЗначениеЗаполнено(СчетУчетаНУ2)*/)
			{
				if(true/*СчетУчетаНУ2.Родитель = СчетУчетаНУ.Родитель*/)
				{
				}
			}
			return null;
		}
		//ЕстьНалоговаяРазница()
		// Функция определяет сумму для заполнения ресурсов "СтоимостьНУ", "ПостояннаяРазница" регистра "Учет затрат организаций"
		//
		// Параметры:
		//  СчетУчетаБУ - счет БУ,
		//  СчетУчетаНУ - счет НУ,
		//  СтатьяЗатратНУ - ссылка на статью затрат,
		//  ВидСуммы - строка, определяющая какую сумму нужно вернуть. Возможные значения: "НУ", "ВР", "ПР",
		//  Сумма - сумма по БУ.
		//
		// Возвращаемое значение:
		//  Сумма по НУ.
		//

		public object ПолучитьСуммуНУ(/*СчетУчетаБУ, СчетУчетаНУ, СтатьяЗатратНУ, ВидСуммы, Сумма, СтруктураШапкиДокумента*/)
		{
			//СтруктураСумм = Новый Структура("НУ, ВР, ПР",Сумма,0,0);
			if(true/*Не СтруктураШапкиДокумента.Свойство("ПоддержкаПБУ18")*/)
			{
				//ПараметрыУчетнойПолитикиРегл = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(СтруктураШапкиДокумента.Дата, СтруктураШапкиДокумента.Организация, Ложь);
				if(true/*ЗначениеЗаполнено(ПараметрыУчетнойПолитикиРегл)*/)
				{
					//СтруктураШапкиДокумента.Вставить("ПоддержкаПБУ18", ПараметрыУчетнойПолитикиРегл.ПоддержкаПБУ18);
				}
			}
			/*//Сформируем движения по разницам в НУ при приходе
*/
			if(true/*ЗначениеЗаполнено(СчетУчетаБУ)*/)
			{
				if(true/*ЕстьНалоговаяРазница(СчетУчетаБУ,СчетУчетаНУ)*/)
				{
					if(true/*ЗначениеЗаполнено(СтатьяЗатратНУ)*/)
					{
						//СтруктураСумм.НУ = 0;
						if(true/*СтруктураШапкиДокумента.ПоддержкаПБУ18*/)
						{
							//ВидРасходовНУ = Перечисления.ВидыРасходовНУ.НеУчитываемыеВЦеляхНалогообложения;
							if(true/*ТипЗНЧ(СтатьяЗатратНУ) = Тип("СправочникСсылка.СтатьиЗатрат")*/)
							{
								//ВидРасходовНУ = СтатьяЗатратНУ.ВидРасходовНУ;
							}
							if(true/*НЕ ВидРасходовНУ = Перечисления.ВидыРасходовНУ.НеУчитываемыеВЦеляхНалогообложения*/)
							{
								//СтруктураСумм.ВР = Сумма;
								//СтруктураСумм.ПР = 0;
							}
						}
					}
				}
			}
			return null;
		}
		//ПолучитьСуммуНУ()
		// Преобразует характер затрат в направление списания
		//
		// Параметры:
		//	ХарактерЗатрат - характер затрат, определяющая направление списания в производство.
		//
		// Возвращаемое значение:
		//	Направление списания.
		//

		public object ПолучитьНаправлениеСписанияПоХарактеруЗатрат(/*ХарактерЗатрат,ВидОтраженияВУчете*/)
		{
			if(true/*ХарактерЗатрат = Перечисления.ХарактерЗатрат.ВложенияВоВнеоборотныеАктивы*/)
			{
			}
			return null;
		}
		// Преобразует статью в направление списания
		// Применяется только для упр. учета
		//
		// Параметры:
		//	КодОперации   - код операции по регистру партий
		//	СтатьяЗатрат  - статья затрат, определяющая направление списания в производство.
		//
		// Возвращаемое значение:
		//	Направление списания.
		//

		public object ПолучитьНаправлениеСписанияПоСтатьеЗатрат(/*СтатьяЗатрат*/)
		{
			if(true/*ЗначениеЗаполнено(СтатьяЗатрат)*/)
			{
				//ХарактерЗатрат  = СтатьяЗатрат.ХарактерЗатрат;
			}
			return null;
		}
		// Преобразует счет учета в направление списания
		// Применяется только для регл. учета
		//
		// Параметры:
		//	КодОперации   - код операции по регистру партий
		//	СтатьяЗатрат  - статья затрат, определяющая направление списания в производство.
		//
		// Возвращаемое значение:
		//	Направление списания.
		//

		public object ПолучитьНаправлениеСписанияПоСчетуУчета(/*СтатьяЗатрат = Неопределено, СчетЗатрат = Неопределено*/)
		{
			//ХарактерЗатрат  = УправлениеЗатратами.ПолучитьХарактерЗатратПоСчетуЗатрат(СчетЗатрат, СтатьяЗатрат);
			return null;
		}
		// Формирует дополнительные суммовые движения по документам поступления для ПБУ 03
		//
		// Параметры:
		//	ДокументПоступления   	- ссылка на документ, движения которого нужно корректировать,
		//	СтруктураСумм  			- структура, содержащая суммы, которые необходимо записать в регистр (Стоимость, СтоимостьНУ, ПостояннаяРазница),
		//
		//

		public void СформироватьДвиженияПоПереоценкеТоваров(/*ДокументПоступления, СтруктураСумм*/)
		{
			//Запрос = Новый Запрос();
			/*Запрос.Текст = "ВЫБРАТЬ
	               |	0 КАК Стоимость,
	               |	0 КАК СтоимостьНУ,
	               |	0 КАК ПостояннаяРазница,
	               |	0 КАК Количество,
	               |	0 КАК КоличествоНУ,
	               |	ЗНАЧЕНИЕ(Перечисление.КодыОперацийПартииТоваров.ПереоценкаВалютныхАвансов) КАК КодОперации,
	               |	УчетЗатратРегл.АналитикаВидаУчета КАК АналитикаВидаУчета,
	               |	УчетЗатратРегл.АналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат,
	               |	УчетЗатратРегл.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
	               |	УчетЗатратРегл.АналитикаРаспределенияЗатрат КАК АналитикаРаспределенияЗатрат,
	               |	УчетЗатратРегл.КорАналитикаВидаУчета КАК КорАналитикаВидаУчета,
	               |	УчетЗатратРегл.КорАналитикаУчетаЗатрат КАК КорАналитикаУчетаЗатрат,
	               |	УчетЗатратРегл.КорАналитикаУчетаПартий КАК КорАналитикаУчетаПартий,
	               |	УчетЗатратРегл.КорАналитикаРаспределенияЗатрат КАК КорАналитикаРаспределенияЗатрат,
	               |	УчетЗатратРегл.Активность КАК Активность,
	               |	УчетЗатратРегл.Регистратор КАК Регистратор,
	               |	УчетЗатратРегл.Период КАК Период,
	               |	УчетЗатратРегл.ВидДвижения КАК ВидДвижения,
	               |	УчетЗатратРегл.Стоимость КАК БазаРаспределения
	               |ИЗ
	               |	РегистрНакопления.УчетЗатратРегл КАК УчетЗатратРегл
	               |ГДЕ
	               |	УчетЗатратРегл.Регистратор = &Регистратор
	               |	И УчетЗатратРегл.ВидДвижения = &ВидДвижения
				   |	И УчетЗатратРегл.КодОперации <> ЗНАЧЕНИЕ(Перечисление.КодыОперацийПартииТоваров.ПереоценкаВалютныхАвансов)
	               |
	               |УПОРЯДОЧИТЬ ПО
	               |	УчетЗатратРегл.НомерСтроки";*/
			//Запрос.УстановитьПараметр("Регистратор",ДокументПоступления);
			//Запрос.УстановитьПараметр("ВидДвижения",ВидДвиженияНакопления.Приход);
			//Результат = Запрос.Выполнить();
			if(true/*НЕ Результат.Пустой()*/)
			{
				//НаборЗаписей = РегистрыНакопления.УчетЗатратРегл.СоздатьНаборЗаписей();
				//НаборЗаписей.Отбор.Регистратор.Установить(ДокументПоступления);
				//НаборЗаписей.Прочитать();
				//СчетчикЦикла = НаборЗаписей.Количество();
				while(true/*СчетчикЦикла >0*/)
				{
					//СчетчикЦикла = СчетчикЦикла - 1;
					if(true/*НаборЗаписей[СчетчикЦикла].КодОперации = Перечисления.КодыОперацийПартииТоваров.ПереоценкаВалютныхАвансов*/)
					{
						//НаборЗаписей.Удалить(СчетчикЦикла);
					}
				}
				/*;
		
		ТаблицаСписания = Результат.Выгрузить();*/
				//БазаРаспределения = ТаблицаСписания.Итог("БазаРаспределения");
				//СтоимостьКРаспределению = СтруктураСумм.Стоимость;
				//СтоимостьНУКРаспределению = СтруктураСумм.СтоимостьНУ;
				//ПостояннаяРазницаКРаспределению = СтруктураСумм.ПостояннаяРазница;
				//НаборЗаписей.Записать(Истина);
			}
		}
		// Формирует дополнительные суммовые движения по документам реализации для ПБУ 03
		//
		// Параметры:
		//	ДокументПоступления   	- ссылка на документ, движения которого нужно корректировать,
		//	СтруктураСумм  			- структура, содержащая суммы, которые необходимо записать в регистр (Стоимость, СтоимостьНУ, ПостояннаяРазница),
		//
		//

		public void СформироватьДвиженияПоПереоценкеТоваровРеализация(/*ДокументРеализации, СтруктураСумм*/)
		{
			//Запрос = Новый Запрос();
			/*Запрос.Текст = "ВЫБРАТЬ
	               |	0 КАК Стоимость,
	               |	0 КАК СтоимостьНУ,
	               |	0 КАК Корректировка,
	               |	0 КАК Количество,
	               |	0 КАК КоличествоНУ,
	               |	ЗНАЧЕНИЕ(Перечисление.КодыОперацийПартииТоваров.ПереоценкаВалютныхАвансов) КАК КодОперации,
	               |	УчетЗатратРегл.АналитикаВидаУчета КАК АналитикаВидаУчета,
	               |	УчетЗатратРегл.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
	               |	УчетЗатратРегл.АналитикаУчетаПартий КАК АналитикаУчетаПартий,
	               |	УчетЗатратРегл.Активность КАК Активность,
	               |	УчетЗатратРегл.Регистратор КАК Регистратор,
	               |	УчетЗатратРегл.Период КАК Период,
	               |	УчетЗатратРегл.Стоимость КАК БазаРаспределения
	               |ИЗ
	               |	РегистрНакопления.УчетПродажИСебестоимости КАК УчетЗатратРегл
	               |ГДЕ
	               |	УчетЗатратРегл.Регистратор = &Регистратор
				   |	И УчетЗатратРегл.КодОперации <> ЗНАЧЕНИЕ(Перечисление.КодыОперацийПартииТоваров.ПереоценкаВалютныхАвансов)
	               |
	               |УПОРЯДОЧИТЬ ПО
	               |	УчетЗатратРегл.НомерСтроки";*/
			//Запрос.УстановитьПараметр("Регистратор",ДокументРеализации);
			//Результат = Запрос.Выполнить();
			if(true/*НЕ Результат.Пустой()*/)
			{
				//НаборЗаписей = РегистрыНакопления.УчетПродажИСебестоимости.СоздатьНаборЗаписей();
				//НаборЗаписей.Отбор.Регистратор.Установить(ДокументРеализации);
				//НаборЗаписей.Прочитать();
				//СчетчикЦикла = НаборЗаписей.Количество();
				while(true/*СчетчикЦикла >0*/)
				{
					//СчетчикЦикла = СчетчикЦикла - 1;
					if(true/*НаборЗаписей[СчетчикЦикла].КодОперации = Перечисления.КодыОперацийПартииТоваров.ПереоценкаВалютныхАвансов*/)
					{
						//НаборЗаписей.Удалить(СчетчикЦикла);
					}
				}
				/*;
		
		ТаблицаСписания = Результат.Выгрузить();*/
				//БазаРаспределения = ТаблицаСписания.Итог("БазаРаспределения");
				//КорректировкаКРаспределению = СтруктураСумм.Корректировка;
				//НаборЗаписей.Записать(Истина);
			}
		}
		// Процедура удаляет мутабельные значения из параметра "Источник"
		//
		// Параметры:
		//	Источник  - структура.

		public void ПодготовитьИсточникДляВозвратаКлиенту(/*Источник*/)
		{
			if(true/*ТипЗНЧ(Источник) = Тип("Структура")*/)
			{
				//Источник.Движения = Новый Структура();
			}
		}
		// Процедура записывает наборы записей в базу данных
		//
		// Параметры:
		//	Движения  - структура наборов записей.

		public void ЗаписатьСтруктуруДвиженийВБазуДанных(/*Движения*/)
		{
			/*//Запись движений в БД
*/
		}

		public void ДвиженияВозвратаТоваровОтПокупателяПоРегистрамПодсистемыНДСРасширеннаяАналитика(/*СтруктураШапкиДокумента, ТаблицаДляПроводок, Отказ, Заголовок*/)
		{
			/*//Чтобы избежать дублирования движений по регистру НДСПаритииЗапасов при работе обработки ПроведениеДокументовПоРегистрамНДС
*/
			//ТаблицаДляПроводок.Колонки.Добавить("СписаниеПартий");
			//ТаблицаДляПроводок.ЗаполнитьЗначения(Истина,"СписаниеПартий");
			//УчетНДСФормированиеДвижений.ДвиженияВозвратаТоваровОтПокупателяПоРегистрамПодсистемыНДС(СтруктураШапкиДокумента, , ТаблицаДляПроводок, Отказ, Заголовок, Истина);
			/*//Чтобы избежать дублирования движений по регистрам НДСНачисленный и НДСПредъявленный при работе обработки ПроведениеДокументовПоРегистрамНДС
*/
			//ДвиженияНДСНачисленный = ОбщегоНазначения.ПолучитьНаборЗаписейПоСсылке(СтруктураШапкиДокумента.Ссылка,РегистрыНакопления.НДСНачисленный,истина);
			//ДвиженияНДСПредъявленный = ОбщегоНазначения.ПолучитьНаборЗаписейПоСсылке(СтруктураШапкиДокумента.Ссылка,РегистрыНакопления.НДСПредъявленный,истина);
			if(true/*ДвиженияНДСНачисленный.Количество()>0*/)
			{
				//ДвиженияНДСНачисленный.Записать();
			}
			if(true/*ДвиженияНДСПредъявленный.Количество()>0*/)
			{
				//ДвиженияНДСПредъявленный.Записать();
			}
		}
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//ФОРМИРОВАНИЕ ДВИЖЕНИЙ ПО АНАЛИТИЧЕСКИМ РЕГИСТРАМ
		// Функция возвращает структуру содержащую реквизиты ключа аналитики
		//
		// Параметры:
		//  ИмяКлючаАналитики - строка, содержащая имя ключа аналитики,
		//  КлючАналитики - ссылка, на ключ аналитики,
		//  СтруктураКлючиАналитики - структура, содержащая кэш по ключам аналитики.
		//
		// Возвращаемое значение:
		//  Структура содержащая аналитику.
		//

		public object ПолучитьАналитикуПоКлючуАналитики(/*ИмяКлючаАналитики, КлючАналитики, СтруктураКлючиАналитики*/)
		{
			/*//Попробуем получить данные из кэша
*/
			if(true/*(НЕ СтруктураКлючиАналитики = Неопределено) И СтруктураКлючиАналитики.Свойство(ИмяКлючаАналитики)*/)
			{
				//СтрокаАналитики = СтруктураКлючиАналитики[ИмяКлючаАналитики].Найти(КлючАналитики,"КлючАналитики");
			}
			/*//Если не получилось, получим из БД
*/
			if(true/*СтрокаАналитики = Неопределено*/)
			{
				/*//Извлекаем данные из регистра
*/
				//Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ РегистрСведений." + ИмяКлючаАналитики + " КАК Аналитика ГДЕ Аналитика.Ссылка = &КлючАналитики");
				//Запрос.УстановитьПараметр("КлючАналитики",КлючАналитики);
				//ТаблицаАналитики = Запрос.Выполнить().Выгрузить();
				if(true/*ТаблицаАналитики.Количество() > 0*/)
				{
					//СтрокаАналитики = ТаблицаАналитики[0];
				}
			}
			return null;
		}
		//ПолучитьАналитикуПоКлючуАналитики()
		// Процедура заполняет значения свойств в структуре "Получатель" по схеме
		//
		// Параметры:
		//  Получатель - структура, которая формируется в результате выполнения процедуры,
		//  Источник - структура, содержащая исходную информацию,
		//  Схема - структура, соответствие полей структуры "Источник" и структуры "Получатель".
		//

		public void ЗаполнитьЗначенияСвойствПоСхеме(/*Получатель,Источник,Схема*/)
		{
		}
		//ЗаполнитьЗначенияСвойствПоСхеме()
		// Процедура добавляет и заполняет в таблице затрат колонки по реквизитам свернутым в ключах аналитики
		//
		// Параметры:
		//  ТаблицаЗатрат - таблица затрат,
		//  СтруктураАналитики - структура, содержащая список разворачиваемых колонок,
		//  Отказ - булево, признак возникновения ошибки,
		//  СтруктураКлючиАналитики - структура, кэш по ключам аналитики,
		//  КорАналитика - булево, признак того что аналитику нужно разворачивать из кор. аналитики.
		//

		public void ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(/*ТаблицаЗатрат, СтруктураАналитики, Отказ=Ложь, СтруктураКлючиАналитики=Неопределено, КорАналитика = Ложь*/)
		{
			if(true/*КорАналитика*/)
			{
				//ПрефиксКолонок = "Кор";
			}
			/*//Добавляем дополнительные колонки в таблицу затрат
*/
			/*//Заполняем новые колонки в таблице затрат
*/
		}
		//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой()
		// Функция возвращает таблицу для формирования движений по регистру ПродажиСебестоимость
		//
		// Параметры:
		//  ТаблицаЗатрат - таблица затрат,
		//  СтруктураКлючиАналитики - структура, содержащая кэш по ключам аналитики.
		//
		// Возвращаемое значение:
		//  Таблица значений.
		//

		public object ПолучитьТаблицуДвиженийПоРегиструПродажиСебестоимость(/*ТаблицаЗатрат,СтруктураКлючиАналитики*/)
		{
			if(true/*ТипЗНЧ(ТаблицаЗатрат) = Тип("ТаблицаЗначений")*/)
			{
				//ТаблицаСписания = ТаблицаЗатрат.СкопироватьКолонки();
			}
			if(true/*ТаблицаСписания.Количество() > 0*/)
			{
				//СтруктураАналитики = Новый Структура();
				//СтруктураАналитики.Вставить("Организация");
				//СтруктураАналитики.Вставить("Подразделение");
				//СтруктураАналитики.Вставить("Проект");
				//СтруктураАналитики.Вставить("Затрата", "Номенклатура");
				//СтруктураАналитики.Вставить("ХарактеристикаЗатраты", "ХарактеристикаНоменклатуры");
				//СтруктураАналитики.Вставить("Заказ", "ЗаказПокупателя");
				//Отказ = Ложь;
				//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, СтруктураАналитики, Отказ, СтруктураКлючиАналитики);
				//ТаблицаСписания.Свернуть("Организация,Подразделение,Проект,Номенклатура,ХарактеристикаНоменклатуры,ЗаказПокупателя","Стоимость,Количество");
				if(true/*Отказ*/)
				{
				}
			}
			return null;
		}
		//ПолучитьТаблицуДвиженийПоРегиструПродажиСебестоимость()
		// Функция возвращает таблицу для формирования движений по регистру ПараметрыАмортизацииОС
		//
		// Параметры:
		//  ТаблицаЗатрат - таблица затрат,
		//  СтруктураКлючиАналитики - структура, содержащая кэш по ключам аналитики,
		//  ДатаДокумента - дата, на которую будут формироваться движения,
		//  ВидОтраженияВУчете - перечисление, определяет вид учета по которому будут формироваться движения.
		//
		// Возвращаемое значение:
		//  Таблица значений.
		//

		public object ПолучитьТаблицуДвиженийПоРегиструПараметрыАмортизацииОС(/*ТаблицаЗатрат,СтруктураКлючиАналитики,ДатаДокумента, ВидОтраженияВУчете*/)
		{
			if(true/*ТипЗНЧ(ТаблицаЗатрат) = Тип("ТаблицаЗначений")*/)
			{
				//ТаблицаСписания = ТаблицаЗатрат.СкопироватьКолонки();
			}
			/*// Определим код операции принятия к учету ОС по виду отражения в учете
*/
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете*/)
			{
				//КодОперацииПринятиеКУчету = Перечисления.КодыОперацийПартииТоваров.ПринятиеКУчетуОСНУ;
			}
			if(true/*ТаблицаСписания.Количество() > 0*/)
			{
				//Отказ = Ложь;
				//ТаблицаСписания.Колонки.Добавить("ОрганизацияНовая",Новый ОписаниеТипов("СправочникСсылка.Организации"));
				//ТаблицаСписания.Колонки.Добавить("ОсновноеСредство",Новый ОписаниеТипов("СправочникСсылка.ОсновныеСредства"));
				//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, Новый Структура("Организация","ОрганизацияНовая"), Отказ, СтруктураКлючиАналитики);
				//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, Новый Структура("Субконто1","ОсновноеСредство"), Отказ, СтруктураКлючиАналитики,Истина);
				if(true/*Отказ*/)
				{
				}
				/*ТаблицаСписания.Свернуть("ОрганизацияНовая,ОсновноеСредство",
			?(ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете,"СтоимостьНУ,ПостояннаяРазница","Стоимость"));*/
				//Запрос = Новый Запрос();
				//Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц();
				/*Запрос.Текст = "ВЫБРАТЬ
		|	ВЫРАЗИТЬ(ТЗ.ОрганизацияНовая КАК Справочник.Организации) КАК Организация,
		|	ВЫРАЗИТЬ(ТЗ.ОсновноеСредство КАК Справочник.ОсновныеСредства) КАК ОсновноеСредство,
		|	//ДляНалУчета	ТЗ.ПостояннаяРазница	КАК ПостояннаяРазница,
		|	//ДляУпрУчета	ТЗ.Стоимость			КАК Стоимость
		|	//ДляБухУчета	ТЗ.Стоимость			КАК Стоимость
		|	//ДляНалУчета	ТЗ.СтоимостьНУ			КАК Стоимость
		|ПОМЕСТИТЬ 
		|	ТаблицаКорректировкиСтоимостиОС
		|ИЗ
		|	&ТаблицаЗначений КАК ТЗ";*/
				//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
				//Запрос.УстановитьПараметр("ТаблицаЗначений",ТаблицаСписания);
				//Запрос.Выполнить();
				/*Запрос.Текст = "ВЫБРАТЬ
		|	&ДатаДокумента КАК Период,
		|	//ДляБухУчета	ТаблицаКорректировкиСтоимостиОС.Организация,
		|	//ДляНалУчета	ТаблицаКорректировкиСтоимостиОС.Организация,
		|	ТаблицаКорректировкиСтоимостиОС.ОсновноеСредство,
		|	//ДляУпрУчета	ТаблицаКорректировкиСтоимостиОС.Стоимость + ЕСТЬNULL(ПараметрыАмортизацииОС.СтоимостьДляВычисленияАмортизации,0) КАК СтоимостьДляВычисленияАмортизации,
		|	//ДляБухУчета	ТаблицаКорректировкиСтоимостиОС.Стоимость + ЕСТЬNULL(ПараметрыАмортизацииОС.СтоимостьДляВычисленияАмортизации,0) КАК СтоимостьДляВычисленияАмортизации,
		|	//ДляУпрУчета	ПараметрыАмортизацииОС.ОбъемПродукцииРабот КАК ОбъемПродукцииРабот,
		|	//ДляБухУчета	ПараметрыАмортизацииОС.ОбъемПродукцииРабот КАК ОбъемПродукцииРабот,
		|	//ДляУпрУчета	ПараметрыАмортизацииОС.СрокИспользованияДляВычисленияАмортизации КАК СрокИспользованияДляВычисленияАмортизации,
		|	//ДляБухУчета	ПараметрыАмортизацииОС.СрокИспользованияДляВычисленияАмортизации КАК СрокИспользованияДляВычисленияАмортизации,
		|	//ДляУпрУчета	ПараметрыАмортизацииОС.ОбъемПродукцииРаботДляВычисленияАмортизации КАК ОбъемПродукцииРаботДляВычисленияАмортизации,
		|	//ДляБухУчета	ПараметрыАмортизацииОС.ОбъемПродукцииРаботДляВычисленияАмортизации КАК ОбъемПродукцииРаботДляВычисленияАмортизации,
		|	//ДляУпрУчета	ПараметрыАмортизацииОС.КоэффициентАмортизации КАК КоэффициентАмортизации,
		|	//ДляБухУчета	ПараметрыАмортизацииОС.КоэффициентАмортизации КАК КоэффициентАмортизации,
		|	//ДляУпрУчета	ПараметрыАмортизацииОС.ПрименитьВТекущемМесяце КАК ПрименитьВТекущемМесяце,
		|	//ДляНалУчета	ТаблицаКорректировкиСтоимостиОС.ПостояннаяРазница + ЕСТЬNULL(ПараметрыАмортизацииОС.ПРДляВычисленияАмортизации,0) КАК ПРДляВычисленияАмортизации,
		|	//ДляУпрУчета	ПараметрыАмортизацииОС.КоэффициентУскорения КАК КоэффициентУскорения,
		|	//ДляБухУчета	ПараметрыАмортизацииОС.КоэффициентУскорения КАК КоэффициентУскорения,
		|	ПараметрыАмортизацииОС.СрокПолезногоИспользования КАК СрокПолезногоИспользования
		|ИЗ
		|	ТаблицаКорректировкиСтоимостиОС КАК ТаблицаКорректировкиСтоимостиОС
		|	
		|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ 
		|		РегистрСведений.ПараметрыАмортизацииОС%СуффиксУчета%.СрезПоследних(
		|				&ДатаДокумента, 
		|				(ОсновноеСредство
		|				//ДляБухУчета, Организация
		|				//ДляНалУчета, Организация
		|				) В (ВЫБРАТЬ 
		|						ОсновноеСредство
		|						//ДляБухУчета, Организация
		|						//ДляНалУчета, Организация
		|					ИЗ 
		|						ТаблицаКорректировкиСтоимостиОС)) КАК ПараметрыАмортизацииОС
		|	ПО 
		|		ПараметрыАмортизацииОС.ОсновноеСредство = ТаблицаКорректировкиСтоимостиОС.ОсновноеСредство
		|		//ДляБухУчета	И ПараметрыАмортизацииОС.Организация = ТаблицаКорректировкиСтоимостиОС.Организация
		|		//ДляНалУчета	И ПараметрыАмортизацииОС.Организация = ТаблицаКорректировкиСтоимостиОС.Организация";*/
				//Запрос.УстановитьПараметр("ДатаДокумента",ДатаДокумента);
				//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
				//Результат = Запрос.Выполнить();
				if(true/*Результат.Пустой()*/)
				{
				}
			}
			return null;
		}
		//ПолучитьТаблицуДвиженийПоРегиструПараметрыАмортизацииОС()
		// Функция возвращает таблицу для формирования движений по регистру ПервоначальныеСведенияОС
		//
		// Параметры:
		//  ТаблицаЗатрат - таблица затрат,
		//  СтруктураКлючиАналитики - структура, содержащая кэш по ключам аналитики,
		//  ДатаДокумента - дата, на которую будут формироваться движения,
		//  ВидОтраженияВУчете - перечисление, определяет вид учета по которому будут формироваться движения.
		//
		// Возвращаемое значение:
		//  Таблица значений.
		//

		public object ПолучитьТаблицуДвиженийПоРегиструПервоначальныеСведенияОС(/*ТаблицаЗатрат,СтруктураКлючиАналитики,ДатаДокумента, ВидОтраженияВУчете*/)
		{
			if(true/*ТипЗНЧ(ТаблицаЗатрат) = Тип("ТаблицаЗначений")*/)
			{
				//ТаблицаСписания = ТаблицаЗатрат.СкопироватьКолонки();
			}
			/*// Определим код операции принятия к учету ОС по виду отражения в учете
*/
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете*/)
			{
				//КодОперацииПринятиеКУчету = Перечисления.КодыОперацийПартииТоваров.ПринятиеКУчетуОСНУ;
			}
			if(true/*ТаблицаСписания.Количество() > 0*/)
			{
				//Отказ = Ложь;
				//ТаблицаСписания.Колонки.Добавить("ОрганизацияНовая",Новый ОписаниеТипов("СправочникСсылка.Организации"));
				//ТаблицаСписания.Колонки.Добавить("ОсновноеСредство",Новый ОписаниеТипов("СправочникСсылка.ОсновныеСредства"));
				//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, Новый Структура("Организация","ОрганизацияНовая"), Отказ, СтруктураКлючиАналитики);
				//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, Новый Структура("Субконто1","ОсновноеСредство"), Отказ, СтруктураКлючиАналитики,Истина);
				if(true/*Отказ*/)
				{
				}
				/*ТаблицаСписания.Свернуть("ОрганизацияНовая,ОсновноеСредство",
			?(ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете, "СтоимостьНУ", "Стоимость"));*/
				//Запрос = Новый Запрос();
				//Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц();
				/*Запрос.Текст = "ВЫБРАТЬ
		|	ВЫРАЗИТЬ(ТЗ.ОрганизацияНовая КАК Справочник.Организации) 		КАК Организация,
		|	ВЫРАЗИТЬ(ТЗ.ОсновноеСредство КАК Справочник.ОсновныеСредства) 	КАК ОсновноеСредство,
		|	//ДляУпрУчета ТЗ.Стоимость		КАК Стоимость
		|	//ДляБухУчета ТЗ.Стоимость		КАК Стоимость
		|	//ДляНалУчета ТЗ.СтоимостьНУ	КАК Стоимость
		|ПОМЕСТИТЬ 
		|	ТаблицаКорректировкиСтоимостиОС
		|ИЗ
		|	&ТаблицаЗначений КАК ТЗ";*/
				//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
				//Запрос.УстановитьПараметр("ТаблицаЗначений",ТаблицаСписания);
				//Запрос.Выполнить();
				/*Запрос.Текст = "ВЫБРАТЬ
		|	&ДатаДокумента КАК Период,
		|	//ДляБухУчета	ТаблицаКорректировкиСтоимостиОС.Организация,
		|	//ДляНалУчета	ТаблицаКорректировкиСтоимостиОС.Организация,
		|	//ДляБухУчета	ПервоначальныеСведенияОС.ИнвентарныйНомер КАК ИнвентарныйНомер,
		|	//ДляБухУчета	ПервоначальныеСведенияОС.СпособПоступления КАК СпособПоступления,
		|	//ДляНалУчета	ПервоначальныеСведенияОС.МетодНачисленияАмортизации КАК МетодНачисленияАмортизации,
		|	//ДляУпрУчета	ПервоначальныеСведенияОС.СпособНачисленияАмортизации КАК СпособНачисленияАмортизации,
		|	//ДляБухУчета	ПервоначальныеСведенияОС.СпособНачисленияАмортизации КАК СпособНачисленияАмортизации,
		|	//ДляУпрУчета	ТаблицаКорректировкиСтоимостиОС.Стоимость + ЕСТЬNULL(ПервоначальныеСведенияОС.ПервоначальнаяСтоимость,0) КАК ПервоначальнаяСтоимость,
		|	//ДляБухУчета	ТаблицаКорректировкиСтоимостиОС.Стоимость + ЕСТЬNULL(ПервоначальныеСведенияОС.ПервоначальнаяСтоимость,0) КАК ПервоначальнаяСтоимость,
		|	//ДляНалУчета	ТаблицаКорректировкиСтоимостиОС.Стоимость + ЕСТЬNULL(ПервоначальныеСведенияОС.ПервоначальнаяСтоимостьНУ,0) КАК ПервоначальнаяСтоимостьНУ,
		|	//ДляНалУчета	ПервоначальныеСведенияОС.СтоимостьДо2002 КАК СтоимостьДо2002,
		|	//ДляНалУчета	ПервоначальныеСведенияОС.АмортизацияДо2002 КАК АмортизацияДо2002,
		|	//ДляНалУчета	ПервоначальныеСведенияОС.ПорядокВключенияСтоимостиВСоставРасходов КАК ПорядокВключенияСтоимостиВСоставРасходов,
		|	//ДляУпрУчета	ПервоначальныеСведенияОС.ПараметрВыработки КАК ПараметрВыработки,
		|	//ДляБухУчета	ПервоначальныеСведенияОС.ПараметрВыработки КАК ПараметрВыработки,
		|	ТаблицаКорректировкиСтоимостиОС.ОсновноеСредство
		|ИЗ	
		|	ТаблицаКорректировкиСтоимостиОС КАК ТаблицаКорректировкиСтоимостиОС
		|	
		|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ 
		|		РегистрСведений.ПервоначальныеСведенияОС%СуффиксУчета%.СрезПоследних(
		|				&ДатаДокумента, 
		|				(ОсновноеСредство
		|				//ДляБухУчета, Организация
		|				//ДляНалУчета, Организация
		|				) В (ВЫБРАТЬ 
		|						ОсновноеСредство
		|						//ДляБухУчета, Организация
		|						//ДляНалУчета, Организация
		|					ИЗ 
		|						ТаблицаКорректировкиСтоимостиОС)) КАК ПервоначальныеСведенияОС
		|	ПО 
		|		ПервоначальныеСведенияОС.ОсновноеСредство = ТаблицаКорректировкиСтоимостиОС.ОсновноеСредство
		|		//ДляБухУчета	И ПервоначальныеСведенияОС.Организация = ТаблицаКорректировкиСтоимостиОС.Организация
		|		//ДляНалУчета	И ПервоначальныеСведенияОС.Организация = ТаблицаКорректировкиСтоимостиОС.Организация";*/
				//Запрос.УстановитьПараметр("ДатаДокумента",ДатаДокумента);
				//Запрос.Текст = УправлениеЗатратами.ЗаменитьКомментарииВТекстеЗапроса(Запрос.Текст, ВидОтраженияВУчете);
				//Результат = Запрос.Выполнить();
				if(true/*Результат.Пустой()*/)
				{
				}
			}
			return null;
		}
		//ПолучитьТаблицуДвиженийПоРегиструПервоначальныеСведенияОС()
		// Функция возвращает таблицу для формирования движений по регистрам ЗатратыНаСтроительствоОбъектовОсновныхСредств и СтроительствоОбъектовОсновныхСредств
		//
		// Параметры:
		//  ТаблицаЗатрат - таблица затрат,
		//  СтруктураКлючиАналитики - структура, содержащая кэш по ключам аналитики.
		//
		// Возвращаемое значение:
		//  Таблица значений.
		//

		public object ПолучитьТаблицуДвиженийПоРегиструЗатратыНаСтроительствоОбъектовОсновныхСредств(/*ТаблицаЗатрат,СтруктураКлючиАналитики*/)
		{
			if(true/*ТипЗНЧ(ТаблицаЗатрат) = Тип("ТаблицаЗначений")*/)
			{
				//ТаблицаСписания = ТаблицаЗатрат.СкопироватьКолонки();
			}
			if(true/*ТаблицаСписания.Количество() > 0*/)
			{
				//Отказ = Ложь;
				//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, Новый Структура("Организация"), Отказ, СтруктураКлючиАналитики);
				//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, Новый Структура("ОбъектСтроительства, Субконто1","ОбъектСтроительства","СтатьяЗатрат"), Отказ, СтруктураКлючиАналитики,Истина);
				//ТаблицаСписания.Свернуть("Организация,ОбъектСтроительства, СтатьяЗатрат, КодОперации","Стоимость");
				//ТаблицаСписания.Колонки.Стоимость.Имя = "Сумма";
				//СчетчикЦикла = 0;
				while(true/*СчетчикЦикла < ТаблицаСписания.Количество()*/)
				{
					if(true/*((ТаблицаСписания[СчетчикЦикла].КодОперации <> Перечисления.КодыОперацийВыпускПродукции.ВыпускПродукцииФиксВнутрУслугиНаПостЗатраты)
				ИЛИ	(ЗначениеЗаполнено(ТаблицаСписания[СчетчикЦикла].СтатьяЗатрат) 
					И (ТаблицаСписания[СчетчикЦикла].СтатьяЗатрат.ХарактерЗатрат = Перечисления.ХарактерЗатрат.ВложенияВоВнеоборотныеАктивы))) 
			  И ТаблицаСписания[СчетчикЦикла].Сумма <> 0*/)
					{
						//СчетчикЦикла = СчетчикЦикла + 1;
					}
				}
				/*;	
		
		ТаблицаСписания.Свернуть("Организация,ОбъектСтроительства, СтатьяЗатрат","Сумма");*/
				if(true/*Отказ  ИЛИ ТаблицаСписания.Количество() = 0*/)
				{
				}
			}
			return null;
		}
		//ПолучитьТаблицуДвиженийПоРегиструЗатратыНаСтроительствоОбъектовОсновныхСредств()
		// Функция возвращает таблицу для формирования движений по регистру СтоимостьОС
		//
		// Параметры:
		//  ТаблицаЗатрат - таблица затрат,
		//  СтруктураКлючиАналитики - структура, содержащая кэш по ключам аналитики,
		//  ОтражатьВНУ - булево.
		//
		// Возвращаемое значение:
		//  Таблица значений.
		//

		public object ПолучитьТаблицуДвиженийПоРегиструСтоимостьОС(/*ТаблицаЗатрат,СтруктураКлючиАналитики,ОтражатьВНУ=Ложь*/)
		{
			if(true/*ТипЗНЧ(ТаблицаЗатрат) = Тип("ТаблицаЗначений")*/)
			{
				//ТаблицаСписания = ТаблицаЗатрат.СкопироватьКолонки();
			}
			/*// Определим код операции принятия к учету ОС по признаку отражения в учете
*/
			//КодОперацииПринятиеКУчету = ?(ОтражатьВНУ, Перечисления.КодыОперацийПартииТоваров.ПринятиеКУчетуОСНУ, Перечисления.КодыОперацийПартииТоваров.ПринятиеКУчетуОС);
			if(true/*ТаблицаСписания.Количество() > 0*/)
			{
				//Отказ = Ложь;
				//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, Новый Структура("Организация"), Отказ, СтруктураКлючиАналитики);
				//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, Новый Структура("Субконто1","ОсновноеСредство"), Отказ, СтруктураКлючиАналитики,Истина);
				if(true/*Отказ*/)
				{
				}
				if(true/*ОтражатьВНУ*/)
				{
					//ТаблицаСписания.Колонки.Удалить("Стоимость");
					//ТаблицаСписания.Колонки.СтоимостьНУ.Имя = "Стоимость";
					//ТаблицаСписания.Колонки.Удалить("Количество");
					//ТаблицаСписания.Колонки.КоличествоНУ.Имя = "Количество";
				}
				//ТаблицаСписания.Свернуть("Организация,ОсновноеСредство","Стоимость,Количество");
			}
			return null;
		}
		//ПолучитьТаблицуДвиженийПоРегиструСтоимостьОС()
		// Функция возвращает таблицу для формирования движений по регистру ОССписанныеНаЗатраты
		//
		// Параметры:
		//  ТаблицаЗатрат - таблица затрат,
		//  СтруктураКлючиАналитики - структура, содержащая кэш по ключам аналитики.
		//
		// Возвращаемое значение:
		//  Таблица значений.
		//

		public object ПолучитьТаблицуДвиженийПоРегиструОССписанныеНаЗатраты(/*ТаблицаЗатрат,СтруктураКлючиАналитики*/)
		{
			if(true/*ТипЗНЧ(ТаблицаЗатрат) = Тип("ТаблицаЗначений")*/)
			{
				//ТаблицаСписания = ТаблицаЗатрат.СкопироватьКолонки();
			}
			if(true/*ТаблицаСписания.Количество() > 0*/)
			{
				//Отказ = Ложь;
				//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, Новый Структура("Организация"), Отказ, СтруктураКлючиАналитики);
				//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, Новый Структура("Субконто1","ОсновноеСредство"), Отказ, СтруктураКлючиАналитики,Истина);
				if(true/*Отказ*/)
				{
				}
				//ТаблицаСписания.Свернуть("Организация,ОсновноеСредство","Стоимость");
			}
			return null;
		}
		//ПолучитьТаблицуДвиженийПоРегиструОССписанныеНаЗатраты()
		// Процедура формирует движения по аналитическим регистрам, по результатам движений по регистрам УчетЗатрат и УчетЗатратРегл
		//
		// Параметры:
		//  ТаблицаЗатрат - таблица затрат,
		//  Регистратор - ссылка на документ, который формирует движения по регистрам,
		//  Отказ - булево, признак возникновения ошибки,
		//  Период - дата формирования движений,
		//  СтруктураКлючиАналитики - структура, кэш по ключам аналитики,
		//  Движения - коллекция наборов записей регистров,
		//  ВидОтраженияВУчете
		//

		public void СформироватьДвиженияПоАналитическимРегистрам(/*
	ТаблицаЗатрат,
	Регистратор,
	Отказ=Ложь,
	Период,
	СтруктураКлючиАналитики,
	Движения, 
	ВидОтраженияВУчете*/)
		{
			//СтруктруаНаборовЗаписей = Новый Соответствие();
			//ТаблицаДвиженийПоРегиструСтоимостьОС = ПолучитьТаблицуДвиженийПоРегиструСтоимостьОС(ТаблицаЗатрат,СтруктураКлючиАналитики);
			//ТаблицаДвиженийПоРегиструОССписанныеНаЗатраты = ПолучитьТаблицуДвиженийПоРегиструОССписанныеНаЗатраты(ТаблицаЗатрат,СтруктураКлючиАналитики);
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				//ТаблицаДвиженийПоРегиструПродажиСебестоимость = ПолучитьТаблицуДвиженийПоРегиструПродажиСебестоимость(ТаблицаЗатрат,СтруктураКлючиАналитики);
				//ТаблицаДвиженийПоРегиструЗатратыНаСтроительствоОбъектовОсновныхСредств = ПолучитьТаблицуДвиженийПоРегиструЗатратыНаСтроительствоОбъектовОсновныхСредств(ТаблицаЗатрат,СтруктураКлючиАналитики);
				//ТаблицаДвиженийПоРегиструПараметрыАмортизацииОС = ПолучитьТаблицуДвиженийПоРегиструПараметрыАмортизацииОС(ТаблицаЗатрат,СтруктураКлючиАналитики, Период, Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете);
				//ТаблицаДвиженийПоРегиструПервоначальныеСведенияОС = ПолучитьТаблицуДвиженийПоРегиструПервоначальныеСведенияОС(ТаблицаЗатрат,СтруктураКлючиАналитики, Период, Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете);
				if(true/*НЕ ТаблицаДвиженийПоРегиструПродажиСебестоимость = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("ПродажиСебестоимость"))*/)
					{
						//Движения.Вставить("ПродажиСебестоимость",РегистрыНакопления.ПродажиСебестоимость.СоздатьНаборЗаписей());
						//Движения.ПродажиСебестоимость.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.ПродажиСебестоимость, ТаблицаДвиженийПоРегиструПродажиСебестоимость);
				}
				if(true/*НЕ ТаблицаДвиженийПоРегиструСтоимостьОС = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("СтоимостьОС"))*/)
					{
						//Движения.Вставить("СтоимостьОС",РегистрыНакопления.СтоимостьОС.СоздатьНаборЗаписей());
						//Движения.СтоимостьОС.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.СтоимостьОС, ТаблицаДвиженийПоРегиструСтоимостьОС);
				}
				if(true/*НЕ ТаблицаДвиженийПоРегиструОССписанныеНаЗатраты = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("ОССписанныеНаЗатраты"))*/)
					{
						//Движения.Вставить("ОССписанныеНаЗатраты",РегистрыНакопления.ОССписанныеНаЗатраты.СоздатьНаборЗаписей());
						//Движения.ОССписанныеНаЗатраты.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.ОССписанныеНаЗатраты, ТаблицаДвиженийПоРегиструОССписанныеНаЗатраты);
				}
				if(true/*НЕ ТаблицаДвиженийПоРегиструЗатратыНаСтроительствоОбъектовОсновныхСредств = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("ЗатратыНаСтроительствоОбъектовОсновныхСредств"))*/)
					{
						//Движения.Вставить("ЗатратыНаСтроительствоОбъектовОсновныхСредств",РегистрыНакопления.ЗатратыНаСтроительствоОбъектовОсновныхСредств.СоздатьНаборЗаписей());
						//Движения.ЗатратыНаСтроительствоОбъектовОсновныхСредств.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.ЗатратыНаСтроительствоОбъектовОсновныхСредств, ТаблицаДвиженийПоРегиструЗатратыНаСтроительствоОбъектовОсновныхСредств);
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("СтроительствоОбъектовОсновныхСредств"))*/)
					{
						//Движения.Вставить("СтроительствоОбъектовОсновныхСредств",РегистрыНакопления.СтроительствоОбъектовОсновныхСредств.СоздатьНаборЗаписей());
						//Движения.СтроительствоОбъектовОсновныхСредств.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.СтроительствоОбъектовОсновныхСредств, ТаблицаДвиженийПоРегиструЗатратыНаСтроительствоОбъектовОсновныхСредств);
				}
				if(true/*НЕ ТаблицаДвиженийПоРегиструПараметрыАмортизацииОС = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("ПараметрыАмортизацииОС"))*/)
					{
						//Движения.Вставить("ПараметрыАмортизацииОС",РегистрыСведений.ПараметрыАмортизацииОС.СоздатьНаборЗаписей());
						//Движения.ПараметрыАмортизацииОС.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.ПараметрыАмортизацииОС, ТаблицаДвиженийПоРегиструПараметрыАмортизацииОС);
				}
				if(true/*НЕ ТаблицаДвиженийПоРегиструПервоначальныеСведенияОС = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("ПервоначальныеСведенияОС"))*/)
					{
						//Движения.Вставить("ПервоначальныеСведенияОС",РегистрыСведений.ПервоначальныеСведенияОС.СоздатьНаборЗаписей());
						//Движения.ПервоначальныеСведенияОС.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.ПервоначальныеСведенияОС, ТаблицаДвиженийПоРегиструПервоначальныеСведенияОС);
				}
			}
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете*/)
			{
				//ТаблицаДвиженийПоРегиструПараметрыАмортизацииОСБухгалтерскийУчет = ПолучитьТаблицуДвиженийПоРегиструПараметрыАмортизацииОС(ТаблицаЗатрат,СтруктураКлючиАналитики, Период, Перечисления.ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете);
				//ТаблицаДвиженийПоРегиструПервоначальныеСведенияОСБухгалтерскийУчет = ПолучитьТаблицуДвиженийПоРегиструПервоначальныеСведенияОС(ТаблицаЗатрат,СтруктураКлючиАналитики, Период, Перечисления.ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете);
				if(true/*НЕ ТаблицаДвиженийПоРегиструСтоимостьОС = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("СтоимостьОСБухгалтерскийУчет"))*/)
					{
						//Движения.Вставить("СтоимостьОСБухгалтерскийУчет",РегистрыНакопления.СтоимостьОСБухгалтерскийУчет.СоздатьНаборЗаписей());
						//Движения.СтоимостьОСБухгалтерскийУчет.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.СтоимостьОСБухгалтерскийУчет, ТаблицаДвиженийПоРегиструСтоимостьОС);
				}
				if(true/*НЕ ТаблицаДвиженийПоРегиструОССписанныеНаЗатраты = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("ОССписанныеНаЗатратыОрганизаций"))*/)
					{
						//Движения.Вставить("ОССписанныеНаЗатратыОрганизаций",РегистрыНакопления.ОССписанныеНаЗатратыОрганизаций.СоздатьНаборЗаписей());
						//Движения.ОССписанныеНаЗатратыОрганизаций.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.ОССписанныеНаЗатратыОрганизаций, ТаблицаДвиженийПоРегиструОССписанныеНаЗатраты);
				}
				if(true/*НЕ ТаблицаДвиженийПоРегиструПараметрыАмортизацииОСБухгалтерскийУчет = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("ПараметрыАмортизацииОСБухгалтерскийУчет"))*/)
					{
						//Движения.Вставить("ПараметрыАмортизацииОСБухгалтерскийУчет",РегистрыСведений.ПараметрыАмортизацииОСБухгалтерскийУчет.СоздатьНаборЗаписей());
						//Движения.ПараметрыАмортизацииОСБухгалтерскийУчет.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.ПараметрыАмортизацииОСБухгалтерскийУчет, ТаблицаДвиженийПоРегиструПараметрыАмортизацииОСБухгалтерскийУчет);
				}
				if(true/*НЕ ТаблицаДвиженийПоРегиструПервоначальныеСведенияОСБухгалтерскийУчет = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("ПервоначальныеСведенияОСБухгалтерскийУчет"))*/)
					{
						//Движения.Вставить("ПервоначальныеСведенияОСБухгалтерскийУчет",РегистрыСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СоздатьНаборЗаписей());
						//Движения.ПервоначальныеСведенияОСБухгалтерскийУчет.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.ПервоначальныеСведенияОСБухгалтерскийУчет, ТаблицаДвиженийПоРегиструПервоначальныеСведенияОСБухгалтерскийУчет);
				}
			}
			if(true/*ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете*/)
			{
				//ТаблицаДвиженийПоРегиструПараметрыАмортизацииОСНалоговыйУчет = ПолучитьТаблицуДвиженийПоРегиструПараметрыАмортизацииОС(ТаблицаЗатрат,СтруктураКлючиАналитики, Период, Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете);
				//ТаблицаДвиженийПоРегиструСтоимостьОСНУ = ПолучитьТаблицуДвиженийПоРегиструСтоимостьОС(ТаблицаЗатрат,СтруктураКлючиАналитики,Истина);
				//ТаблицаДвиженийПоРегиструПервоначальныеСведенияОСНалоговыйУчет = ПолучитьТаблицуДвиженийПоРегиструПервоначальныеСведенияОС(ТаблицаЗатрат,СтруктураКлючиАналитики, Период, Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете);
				if(true/*НЕ ТаблицаДвиженийПоРегиструСтоимостьОСНУ = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("СтоимостьОСНалоговыйУчет"))*/)
					{
						//Движения.Вставить("СтоимостьОСНалоговыйУчет",РегистрыНакопления.СтоимостьОСНалоговыйУчет.СоздатьНаборЗаписей());
						//Движения.СтоимостьОСНалоговыйУчет.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.СтоимостьОСНалоговыйУчет, ТаблицаДвиженийПоРегиструСтоимостьОСНУ);
				}
				if(true/*НЕ ТаблицаДвиженийПоРегиструПервоначальныеСведенияОСНалоговыйУчет = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("ПервоначальныеСведенияОСНалоговыйУчет"))*/)
					{
						//Движения.Вставить("ПервоначальныеСведенияОСНалоговыйУчет",РегистрыСведений.ПервоначальныеСведенияОСНалоговыйУчет.СоздатьНаборЗаписей());
						//Движения.ПервоначальныеСведенияОСНалоговыйУчет.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.ПервоначальныеСведенияОСНалоговыйУчет, ТаблицаДвиженийПоРегиструПервоначальныеСведенияОСНалоговыйУчет);
				}
				if(true/*НЕ ТаблицаДвиженийПоРегиструПараметрыАмортизацииОСНалоговыйУчет = Неопределено*/)
				{
					if(true/*ТипЗНЧ(Движения) = Тип("Структура") И 
			  (НЕ Движения.Свойство("ПараметрыАмортизацииОСНалоговыйУчет"))*/)
					{
						//Движения.Вставить("ПараметрыАмортизацииОСНалоговыйУчет",РегистрыСведений.ПараметрыАмортизацииОСНалоговыйУчет.СоздатьНаборЗаписей());
						//Движения.ПараметрыАмортизацииОСНалоговыйУчет.Отбор.Регистратор.Установить(Регистратор);
					}
					//СтруктруаНаборовЗаписей.Вставить(Движения.ПараметрыАмортизацииОСНалоговыйУчет, ТаблицаДвиженийПоРегиструПараметрыАмортизацииОСНалоговыйУчет);
				}
			}
		}
		//СформироватьДвиженияПоАналитическимРегистрам()
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//ФОРМИРОВАНИЕ ПРОВОДОК
		// Функция определяет наличие реквизита в строке движения
		//
		// Параметры:
		//  Движение - строка таблицы значений, набора записей или структура,
		//  Реквизит - строка - имя реквизита.
		//
		// Возвращаемое значение:
		//  Булево - признак наличия реквизита в строке движения
		//

		public object ЕстьРеквизитВТаблицеДвижений(/*Движение,Реквизит*/)
		{
			if(true/*ТипЗНЧ(Движение) = Тип("Структура")*/)
			{
			}
			return null;
		}
		// Процедура заполняет аналитику (счета и субконто) в проводке по переданной структуре
		//
		// Параметры:
		//  Проводка - запись регистра бухгалтерии,
		//  СтрокаДокумента - структра, содержащая данные для записи в регистр,
		//  СтруктураПараметров - структура, содержащая структуру наборов записей и важные реквизиты шапки документа,
		//  ВидУчета - строка, принимающая следующие значения "Бух" и "Нал".
		//

		public void ЗаполнитьСубконтоПоСписаниюТоваровРеглРасширеннаяАналитика(/*Проводка, СтрокаДокумента, СтруктураПараметров, ВидУчета*/)
		{
			if(true/*ВидУчета = "Бух"*/)
			{
				//СчетТоварыПринятые    = ПланыСчетов.Хозрасчетный.ТоварыПринятыеНаКомиссию;
				//СуффиксУчетаДляСубконто = "";
			}
			//ВидСубконтоНоменклатура = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура;
			//ВидСубконтоНоменклатурныеГруппы = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы;
			//ВидСубконтоСклады       = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады;
			//ВидСубконтоПодразделения= ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения;
			//ВидСубконтоСтатьиЗатрат = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат;
			//ВидСубконтоДоговоры     = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры;
			//ВидСубконтоКонтрагенты  = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты;
			//ВидСубконтоКомиссионеры = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Комиссионеры;
			//ВидСубконтоОбъектыСтроительства = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбъектыСтроительства;
			//ВидСубконтоСпособСтроительства = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СпособыСтроительства;
			//ВидСубконтоОсновныеСредства = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства;
			//ВидСубконтоСчетФактура = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СФПолученные;
			/*// Заполняем дебет:
*/
			if(true/*ЗначениеЗаполнено(Проводка.СчетДт)*/)
			{
				//НомерСубконто = 0;
			}
			/*// Заполняем кредит
*/
			if(true/*ЗначениеЗаполнено(Проводка.СчетКт)*/)
			{
			}
		}
		//ЗаполнитьСубконтоПоСписаниюТоваровРеглРасширеннаяАналитика()
		// Функция определяет идентичность корреспонденций дебета и кредита
		//
		// Параметры:
		//  Проводка - запись регистра бухгалтерии.
		//
		// Возвращаемое значение:
		//  Булево - признак идентичности аналитики дебета и кредита
		//

		public object СовпадаетАналитикаДтКт(/*Проводка*/)
		{
			if(true/*Проводка.СчетДт = Проводка.СчетКт 
	  И Проводка.КоличествоКт = Проводка.КоличествоДт*/)
			{
				if(true/*ТипЗНЧ(Проводка.СчетДт) = Тип("ПланСчетовСсылка.Налоговый")
		  И Проводка.ВидУчетаДт <> Проводка.ВидУчетаКт*/)
				{
					//АналитикаСовпадает = Ложь;
				}
			}
			return null;
		}
		// СовпадаетАналитикаДтКт()
		// Определяет по виду учета, является ли проводка (часть проводки) отражением налоговой разницы
		//
		// Параметры:
		//  ВидУчета - значение перечисления ВидыУчетаПоПБУ18
		//
		// Возвращаемое значение:
		//  Истина - проводка (часть проводки) является отражением налоговой разницы
		//  Ложь   - в остальных случаях

		public object НалоговыеРазницы(/*ВидУчета*/)
		{
			//Возврат (ВидУчета = Перечисления.ВидыУчетаПоПБУ18.ПР) ИЛИ (ВидУчета = Перечисления.ВидыУчетаПоПБУ18.ВР);
			return null;
		}
		// Процедура добавляет проводку в регистр
		//
		// Параметры:
		//  СтруктураПараметров - структура, содержащая структуру наборов записей и важные реквизиты шапки документа,
		//  ИмяРегистра - имя регистра, в который нужно добавить проводку,
		//  Движение - структра, содержащая данные строки движения по регистру УчетЗатратРегл,
		//  КэшПоИерархииСчетов - структура, содержащая кэш по иерархии счетов,
		//  Сумма - сумма проводки,
		//  ВидУчета - перечисление ВидыУчетаПоПБУ18 (указывается только для проводок по нал. учету).
		//

		public void ДобавитьПроводку(/*СтруктураПараметров, ИмяРегистра, Движение,КэшПоИерархииСчетов, Сумма, ВидУчета = Неопределено*/)
		{
			/*//Проверим, чтобы не было проводки между балансовым и забалансовым счетом
*/
			if(true/*ИмяРегистра = "Хозрасчетный" И
	  ((ЗначениеЗаполнено(Движение.СчетУчета) И Движение.СчетУчета.Забалансовый
	  И ЗначениеЗаполнено(Движение.КорСчетУчета) И НЕ Движение.КорСчетУчета.Забалансовый)
	  ИЛИ (ЗначениеЗаполнено(Движение.КорСчетУчета) И Движение.КорСчетУчета.Забалансовый
	  И ЗначениеЗаполнено(Движение.СчетУчета) И НЕ Движение.СчетУчета.Забалансовый))*/)
			{
				//Отказ = Ложь;
				//Заголовок = "Проведение документа """ + СокрЛП(СтруктураПараметров.Ссылка) + """: ";
				/*ОбщегоНазначения.СообщитьОбОшибке("Корреспонденция между балансовыми и забалансовыми счетами не допустима!
		|Проводка Дт " + Движение.СчетУчета + " Кт " + Движение.КорСчетУчета + " сформирована не будет",Отказ, Заголовок);*/
			}
			//Проводка = СтруктураПараметров.Движения[ИмяРегистра].Добавить();
			if(true/*ИмяРегистра = "Хозрасчетный"*/)
			{
				//Количество = Движение.Количество;
			}
			/*// Заполняем вид учета
*/
			if(true/*ИмяРегистра = "Налоговый" И ВидУчета <> Неопределено*/)
			{
				//Проводка.ВидУчетаКт = ВидУчета;
				/*// Вид учета Дт может отличаться от вида учета в Кт в следующих случаях:
*/
				/*// - если речь о расходах, не учитываемых в НУ
*/
				if(true/*(ТипЗНЧ(Движение) <> Тип("Структура"))
			И ЕстьРеквизитВТаблицеДвижений(Движение,"КорСтатьяЗатрат")
			И ЗначениеЗаполнено(Движение.КорСтатьяЗатрат)
			И Движение.КорСтатьяЗатрат.ВидРасходовНУ = Перечисления.ВидыРасходовНУ.НеУчитываемыеВЦеляхНалогообложения*/)
				{
					//НеУчитываемые = Истина;
				}
				/*// - если временную разницу в доходах (расходах) отразить нельзя
*/
				/*ОтразитьПостояннуюРазницуВДоходах = 
			ЕстьРеквизитВТаблицеДвижений(Движение,"СчитатьРазницыПостоянными")
			И ЗначениеЗаполнено(Движение.СчитатьРазницыПостоянными)
			И Движение.СчитатьРазницыПостоянными;*/
				if(true/*(НеУчитываемые И ВидУчета = Перечисления.ВидыУчетаПоПБУ18.НУ) 
				ИЛИ (ОтразитьПостояннуюРазницуВДоходах И ВидУчета = Перечисления.ВидыУчетаПоПБУ18.ВР)*/)
				{
					//Проводка.ВидУчетаДт = Перечисления.ВидыУчетаПоПБУ18.ПР;
				}
			}
			//Проводка.Период = СтруктураПараметров.Дата;
			/*// Исправительная запись может выполняться предыдущим периодом
*/
			if(true/*ЕстьРеквизитВТаблицеДвижений(Движение,"ДатаИсправительнойЗаписи") 
		И ЗначениеЗаполнено(Движение.ДатаИсправительнойЗаписи)*/)
			{
				//Проводка.Период = Движение.ДатаИсправительнойЗаписи;
			}
			//Проводка.Регистратор   = СтруктураПараметров.Ссылка;
			//Проводка.Активность    = Истина;
			//Проводка.Организация   = Движение.Организация;
			if(true/*ИмяРегистра = "Хозрасчетный"*/)
			{
				//Проводка.СчетКт    	= Движение.СчетУчета;
				//Проводка.СчетДт		= Движение.КорСчетУчета;
				//ЗаполнитьСубконтоПоСписаниюТоваровРеглРасширеннаяАналитика(Проводка, Движение, КэшПоИерархииСчетов, "Бух");
			}
			//Проводка.Сумма = Сумма;
			if(true/*Проводка.СчетКт.Количественный*/)
			{
				if(true/*НЕ НалоговыеРазницы(ВидУчета)*/)
				{
					//Проводка.КоличествоКт  = Количество;
				}
			}
			/*// Количество
*/
			if(true/*ЗначениеЗаполнено(Проводка.СчетДт)*/)
			{
				if(true/*Проводка.СчетДт.Количественный*/)
				{
					if(true/*НЕ НалоговыеРазницы(ВидУчета)*/)
					{
						if(true/*ИмяРегистра = "Хозрасчетный"*/)
						{
							if(true/*ЕстьРеквизитВТаблицеДвижений(Движение,"КоличествоПолучатель")*/)
							{
								//Проводка.КоличествоДт  = Движение.КоличествоПолучатель;
							}
						}
					}
				}
				if(true/*ИмяРегистра = "Хозрасчетный" И Проводка.СчетДт.Валютный*/)
				{
					if(true/*ЕстьРеквизитВТаблицеДвижений(Движение,"СуммаВал")*/)
					{
						//Проводка.ВалютнаяСуммаДт  = Движение.СуммаВал;
					}
					if(true/*ЕстьРеквизитВТаблицеДвижений(Движение,"Валюта")*/)
					{
						//Проводка.ВалютаДт  = Движение.Валюта;
					}
				}
			}
			if(true/*ЗначениеЗаполнено(Проводка.СчетКт)*/)
			{
				if(true/*ИмяРегистра = "Хозрасчетный" И Проводка.СчетКт.Валютный*/)
				{
					if(true/*ЕстьРеквизитВТаблицеДвижений(Движение,"СуммаВал")*/)
					{
						//Проводка.ВалютнаяСуммаКт  = Движение.СуммаВал;
					}
					if(true/*ЕстьРеквизитВТаблицеДвижений(Движение,"Валюта")*/)
					{
						//Проводка.ВалютаКт  = Движение.Валюта;
					}
				}
			}
			/*// В проводке должна отличаться аналитика и быть заполнен хотя бы один ресурс
*/
			/*НезначащаяПроводка = 
		СовпадаетАналитикаДтКт(Проводка) 
		ИЛИ ((Проводка.Сумма = 0) И (Проводка.КоличествоДт = 0) И (Проводка.КоличествоКт = 0));*/
			/*// Как правило, должны быть заполнены оба счета ... 
*/
			//ПустыеСчета = (НЕ ЗначениеЗаполнено(Проводка.СчетДт)) ИЛИ (НЕ ЗначениеЗаполнено(Проводка.СчетКт));
			/*// ... но для НУ есть исключения
*/
			if(true/*ПустыеСчета И ИмяРегистра = "Налоговый"*/)
			{
				/*// Если проводка по разницам, то достаточно, чтобы был заполнен хотя бы один счет
*/
				if(true/*ЗначениеЗаполнено(Проводка.СчетДт) И НалоговыеРазницы(Проводка.ВидУчетаДт)*/)
				{
					//ПустыеСчета = Ложь;
				}
			}
			if(true/*НезначащаяПроводка ИЛИ ПустыеСчета*/)
			{
				//СтруктураПараметров.Движения[ИмяРегистра].Удалить(Проводка);
			}
			//СтруктураПараметровДляСодержания = Новый Структура("КодыОпераций, ТипЗначенияРегистратора",Перечисления.КодыОперацийПартииТоваров, ТипЗНЧ(СтруктураПараметров.Ссылка));
			//СтрокаДвиженияДляСодержания = Новый Структура("КодОперацииПартииТоваров",Движение.КодОперации);
			//Проводка.Содержание = УправлениеЗапасамиПартионныйУчетФормированиеПроводокРегл.ПолучитьСодержаниеПроводки(СтрокаДвиженияДляСодержания, СтруктураПараметровДляСодержания);
		}
		// Функция определяет, надо ли для переданного документа формировать проводки по выпуску
		// на основании движений по регистру УчетЗатратРегл, либо они были сформированы ранее.
		//
		// Движения ряда документов по разделу выпуск формируются в процедуре
		// УправлениеПроизводствомДвиженияПоРегистрам.СформироватьДвиженияПоВыпускуПродукцииИНаправлениямВыпуска()
		// Одновременно формируются и проводки.
		//
		// Параметры:
		//  Ссылка - ссылка на документ, для которого надо определить момент формирования движений
		//
		// Возвращаемое значение: булево
		//

		public object ПроводкиПоВыпускуФормируютсяОдновременноСДвижениями(/*Ссылка*/)
		{
			/*// Список типов документов, движения по выпуску которых формируются в модуле УправлениеПроизводствомДвиженияПоРегистрам
*/
			//МассивТиповДокументов = Новый Массив();
			//МассивТиповДокументов.Добавить(Тип("ДокументСсылка.ОтчетПроизводстваЗаСмену"));
			//МассивТиповДокументов.Добавить(Тип("ДокументСсылка.ПоступлениеТоваровИзПереработки"));
			//МассивТиповДокументов.Добавить(Тип("ДокументСсылка.КомплектацияНоменклатуры"));
			//МассивТиповДокументов.Добавить(Тип("ДокументСсылка.АктОбОказанииПроизводственныхУслуг"));
			//МассивТиповДокументов.Добавить(Тип("ДокументСсылка.КорректировкаНЗП"));
			//МассивТиповДокументов.Добавить(Тип("ДокументСсылка.ОприходованиеНЗП"));
			//МассивТиповДокументов.Добавить(Тип("ДокументСсылка.СписаниеНЗП"));
			//МассивТиповДокументов.Добавить(Тип("ДокументСсылка.ОприходованиеМатериаловИзПроизводства"));
			if(true/*МассивТиповДокументов.Найти(ТипЗнч(Ссылка)) = Неопределено*/)
			{
				/*// По этому документу проводки по выпуску формируются отдельно от движений по УчетЗатратРегл
*/
			}
			return null;
		}
		// Процедура формирует проводки, по результатам проведения по регистру УчетЗатратРегл
		//
		// Параметры:
		//  СтруктураПараметров - структура, содержащая структуру наборов записей и важные реквизиты шапки документа,
		//  ТаблицаСписания - таблица расходных движений по регистру УчетЗатратРегл (модифицируется в процедуре)
		//  ТаблицаОприходования - таблица приходных движений по регистру УчетЗатратРегл,
		//  Отказ - булево, признак возникновения ошибки в процедуре,
		//  СтруктураКлючиАналитики - структура, для кэширования ключей аналитики,
		//  ПолучатьАналитикуИзТаблицыСписания - булево, признак того, что аналитику не нужно разворачивать из ключей, а можно получить напрямую из таблицы ТаблицаСписания.
		//

		public void СформироватьПроводкиПоРезультатамСписания(/*СтруктураПараметров, ТаблицаСписания, ТаблицаОприходования = Неопределено, Отказ=Ложь, СтруктураКлючиАналитики, ПолучатьАналитикуИзТаблицыСписания = Ложь*/)
		{
			if(true/*ПолучатьАналитикуИзТаблицыСписания*/)
			{
				//ПрефиксКорАналитики = "Кор";
			}
			if(true/*НЕ ПолучатьАналитикуИзТаблицыСписания*/)
			{
				/*//Формирование аналитики дебета
*/
				//СтруктураАналитики = Новый Структура();
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"Затрата", "КорЗатрата");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"СчетУчета","КорСчетУчета");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"СчетУчетаНУ","КорСчетУчетаНУ");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"СтатьяЗатрат","КорСтатьяЗатрат");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"ОбъектСтроительства","КорОбъектСтроительства");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"СпособСтроительства","КорСпособСтроительства");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"НоменклатурнаяГруппа", "КорНоменклатурнаяГруппа");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"ПодразделениеОрганизации", "КорПодразделениеОрганизации");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"ДоговорКомиссионера", "КорДоговорКомиссионера");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"Комиссионер", "КорКомиссионер");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"Субконто1", "КорСубконто1");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"Субконто2", "КорСубконто2");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"Субконто3", "КорСубконто3");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"СубконтоНУ1", "КорСубконтоНУ1");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"СубконтоНУ2", "КорСубконтоНУ2");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"СубконтоНУ3", "КорСубконтоНУ3");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"ДатаИсправительнойЗаписи", "ДатаИсправительнойЗаписи");
				//СтруктураАналитики.Вставить(ПрефиксКорАналитики+"СчитатьРазницыПостоянными", "СчитатьРазницыПостоянными");
				if(true/*НЕ ПолучатьАналитикуИзТаблицыСписания*/)
				{
					//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, СтруктураАналитики, Отказ, СтруктураКлючиАналитики,Истина);
					//СтруктураАналитики = Новый Структура();
				}
				/*//Формирование аналитики кредита
*/
				//СтруктураАналитики = Новый Структура();
				//СтруктураАналитики.Вставить("Организация");
				//СтруктураАналитики.Вставить("СчетУчета");
				//СтруктураАналитики.Вставить("СчетУчетаНУ");
				//СтруктураАналитики.Вставить("Затрата", "Затрата");
				//СтруктураАналитики.Вставить("ДоговорКомитента");
				//СтруктураАналитики.Вставить("Комиссионер");
				//СтруктураАналитики.Вставить("ДоговорКомиссионера");
				//СтруктураАналитики.Вставить("РазделУчета");
				//СтруктураАналитики.Вставить("СтатьяЗатрат","СтатьяЗатрат");
				//СтруктураАналитики.Вставить("ОбъектСтроительства","ОбъектСтроительства");
				//СтруктураАналитики.Вставить("СпособСтроительства","СпособСтроительства");
				//СтруктураАналитики.Вставить("НоменклатурнаяГруппа", "НоменклатурнаяГруппа");
				//СтруктураАналитики.Вставить("ПодразделениеОрганизации", "ПодразделениеОрганизации");
				if(true/*НЕ ПолучатьАналитикуИзТаблицыСписания*/)
				{
					//ЗаполнитьТаблицуДвиженийПоЗатратамАналитикой(ТаблицаСписания, СтруктураАналитики, Отказ, СтруктураКлючиАналитики);
				}
				if(true/*Отказ*/)
				{
				}
			}
			/*// Дополним таблицу списания исправительными записями, сформируем проводки по отражению исправлений в финансовом результате
*/
			//СформироватьИсправительныеЗаписи(ТаблицаСписания, СтруктураПараметров);
			//КэшПоИерархииСчетов = Новый Структура();
			//ПроводкиПоВыпускуУжеСформированы = ПроводкиПоВыпускуФормируютсяОдновременноСДвижениями(СтруктураПараметров.Ссылка);
			/*// Убедимся, что не сформированы проводки по Кт91.01
*/
			/*// Механизмы регл. отчетности обрабатывают проводки только по Дт91.01
*/
			//РазвернутьПроводкиДт9101(СтруктураПараметров.Движения);
		}
		//СформироватьПроводкиПоРезультатамСписания()
		// Дополняет наборы записей регистров бухгалтерии и записи в таблице проводками,
		// связанными с исправительными записями прошлыми датами
		//
		// Параметры:
		//  ТаблицаПроводок - таблица расходных движений по регистру УчетЗатратРегл (модифицируется в процедуре)
		//  СтруктураПараметров - структура, содержит наборы записей и необходимые реквизиты шапки документа

		public void СформироватьИсправительныеЗаписи(/*ТаблицаПроводок, СтруктураПараметров*/)
		{
			/*// Обрабатываем только строки, в которых заполнена ДатаИсправительнойЗаписи.
*/
			/*// В отдельных случаях в таблице такой колонки может не быть - тогда ничего не обрабатываем.
*/
			if(true/*ТаблицаПроводок.Колонки.Найти("ДатаИсправительнойЗаписи") = Неопределено*/)
			{
			}
			//ТаблицаДополнительныхПроводок = ТаблицаПроводок.СкопироватьКолонки();
			/*// Перенесем дополнительные проводки в основную таблицу
*/
		}
		// В проводках по Дт 91.01 меняет Дт и Кт, так чтобы записи по счету 91.01 были только по Кт (сторно)
		// Параметры:
		//  НаборыЗаписей - структура, содержит наборы записей регистров бухгалтерии

		public void РазвернутьПроводкиДт9101(/*НаборыЗаписей*/)
		{
			//СчетаТолькоКт = Новый Массив;
			//СчетаТолькоКт.Добавить(ПланыСчетов.Хозрасчетный.ПрочиеДоходы);
			//СчетаТолькоКт.Добавить(ПланыСчетов.Налоговый.ВнереализационныеДоходы);
			/*// По наборам записей
*/
		}
		// Процедура формирует проводки, по счету 40 ,если установлен соответствующий вариант выпуска готовой продукции
		//
		// Параметры:
		//  СтруктураШапкиДокумента - структура, содержащая реквизиты шапки документа,
		//  Движения - структура, содержащая наборы записей документа, в. т.ч. по регистрам Хозрасчетный и Налоговый
		//

		public void СформироватьПроводкиПоСчету40(/*СтруктураШапкиДокумента,Движения*/)
		{
			//УчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(СтруктураШапкиДокумента.Дата, СтруктураШапкиДокумента.Организация);
			if(true/*НЕ ЗначениеЗаполнено(УчетнаяПолитика)
	  ИЛИ УчетнаяПолитика.ВариантУчетаВыпускаГотовойПродукции <> Перечисления.ВариантыУчетаВыпускаГотовойПродукции.СИспользованиемСчета40*/)
			{
			}
			/*//Для документа "Оприходование материалов из производства" проводки через счет 40 формировать не нужно
*/
			/*//т.к. Оприходование материалов из производства это сторно документа Требование-накладная (это не выпуск)
*/
			if(true/*ТипЗНЧ(СтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.ОприходованиеМатериаловИзПроизводства")*/)
			{
			}
			/*// по наборам записей
*/
		}
		// СформироватьПроводкиПоСчету40()
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//ФОРМИРОВАНИЕ ДОПОЛНИТЕЛЬНЫХ ДВИЖЕНИЙ ПО ЗАТРАТАМ

		public void СформироватьДополнительныеДвиженияПоРегистрамУчетаЗатрат(/*Источник,СтруктураНаборовЗаписейПоВидамУчета,ТаблицаДляФормированияДвиженийПоРегистру*/)
		{
			/*//Передача материалов в эксплуатацию
*/
			if(true/*ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.ПередачаМатериаловВЭксплуатацию")*/)
			{
				//СтруктураПараметров = Новый Структура();
				//СтруктураПараметров.Вставить("Период", Источник.Дата);
				//СтруктураПараметров.Вставить("Регистратор", Источник.Ссылка);
				//СтруктураПараметров.Вставить("Организация", Источник.мСтруктураШапкиДокумента.Организация);
				//СтруктураПараметров.Вставить("ЕстьСтрокиОтражатьВУправленческомУчете", Источник.ОтражатьВУправленческомУчете);
				//СтруктураПараметров.Вставить("ЕстьСтрокиОтражатьВБухгалтерскомУчете", Источник.ОтражатьВБухгалтерскомУчете);
				//СтруктураПараметров.Вставить("ЕстьСтрокиОтражатьВНалоговомУчете", Источник.ОтражатьВНалоговомУчете);
				//СтруктураПараметров.Вставить("НаборыЗаписейРегистров", СтруктураНаборовЗаписейПоВидамУчета);
				/*ПроцедурыПогашенияСтоимости.ПогашениеСтоимостиПриПередачеВЭксплуатацию(
			СтруктураПараметров,
			ТаблицаДляФормированияДвиженийПоРегистру
		);*/
			}
		}
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//ПРОЦЕДУРЫ РАСПРЕДЕЛЕНИЯ СЧЕТА 16
		//Функция определяет субсчет счета 15 в зависимости от счета учета МПЗ:
		//Счет МПЗ - 41 -- Субсчет 2
		//В остальных случаях - Субсчет 1
		//СчетУчетаМПЗ - ссылка на счет (ПланыСчетов.Налоговый либо ПланСчетов.Хозрасчетный)
		//Возвращаемое значение - ссылка на счет (один из субсчетов счета 15 соответствующего плана счетов)

		public object ОпределитьСубсчетСчета15(/*СчетУчетаМПЗ*/)
		{
			if(true/*ТипЗнч(СчетУчетаМПЗ) = Тип("ПланСчетовСсылка.Хозрасчетный")
	  И ЗначениеЗаполнено(СчетУчетаМПЗ)*/)
			{
				if(true/*СчетУчетаМПЗ.ПринадлежитЭлементу(ПланыСчетов.Хозрасчетный.Товары)*/)
				{
				}
			}
			return null;
		}

		public void РаспределитьТЗРСоСчета16(/*СтруктураШапкиДокумента*/)
		{
			//СтруктураНаборыЗаписей = РасширеннаяАналитикаУчета.ПолучитьНаборыЗаписейРегистров(СтруктураШапкиДокумента);
			//НаборЗаписей = СтруктураНаборыЗаписей.УчетЗатрат;
			//СтруктураКлючиАналитики = Новый Структура();
			/*//Закрытие счета 15 на счет 16
*/
			/*Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	УчетЗатратРеглОстатки.АналитикаВидаУчета,
	|	УчетЗатратРеглОстатки.АналитикаУчетаЗатрат,
	|	УчетЗатратРеглОстатки.АналитикаУчетаПартий,
	|	УчетЗатратРеглОстатки.АналитикаРаспределенияЗатрат,
	|ВЫБОР КОГДА 
	|		КлючАналитикаВидаУчета.СчетУчета = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ЗаготовлениеИПриобретениеМатериалов) ТОГДА
	|		ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиМатериалов)
	|ИНАЧЕ
	|		ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиТоваров)
	|КОНЕЦ КАК СчетУчетаОтклонений,
	|	УчетЗатратРеглОстатки.КоличествоОстаток,
	|	УчетЗатратРеглОстатки.СтоимостьОстаток
	|ИЗ
	|	РегистрНакопления.УчетЗатратРегл.Остатки(
	|			&ДатаДокумента,
	|			АналитикаВидаУчета В
	|				(ВЫБРАТЬ
	|					КлючАналитикаВидаУчета.Ссылка
	|				ИЗ
	|					РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
	|				ГДЕ
	|					КлючАналитикаВидаУчета.Организация = &Организация
	|					И КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ЗаготовлениеИПриобретениеМЦ)))) КАК УчетЗатратРеглОстатки
	|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|	РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
	|ПО УчетЗатратРеглОстатки.АналитикаВидаУчета = КлючАналитикаВидаУчета.Ссылка");*/
			//Запрос.УстановитьПараметр("Организация",СтруктураШапкиДокумента.Организация);
			//Запрос.УстановитьПараметр("ДатаДокумента",СтруктураШапкиДокумента.мКонГраница);
			//Выборка = Запрос.Выполнить().Выбрать();
			//СоответствиеОстаткиНаСчете16 = Новый Соответствие();
			while(true/*Выборка.Следующий()*/)
			{
				/*КорАналитикаВидаУчета = РасширеннаяАналитикаУчета.ПолучитьЗначениеКлючаАналитики(
							СтруктураШапкиДокумента,
							Новый Структура("РазделУчета, СчетУчета, Организация",Перечисления.РазделыУчета.Затраты, Выборка.СчетУчетаОтклонений, СтруктураШапкиДокумента.Организация),
							Перечисления.КлючиАналитики.АналитикаВидаУчета,
							Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете,
							СтруктураКлючиАналитики
						);*/
				/*// АналитикаВидаУчета
*/
				/*// АналитикаУчетаЗатрат
*/
				/*// АналитикаУчетаПартий
*/
				/*// АналитикаУчетаВыпуска
*/
				/*// КорАналитикаВидаУчета
*/
				/*// КорАналитикаУчетаЗатрат
*/
				/*// КорАналитикаУчетаПартий
*/
				/*// КорАналитикаУчетаВыпуска
*/
				/*ВидДвиженияНакопления.Расход,
			Неопределено,
			Выборка.КоличествоОстаток,
			Выборка.СтоимостьОстаток,
			0,
			0,
			0,
			НаборЗаписей
		);*/
				/*// КорАналитикаВидаУчета
*/
				/*// КорАналитикаУчетаЗатрат
*/
				/*// КорАналитикаУчетаПартий
*/
				/*// КорАналитикаУчетаВыпуска
*/
				/*// АналитикаВидаУчета
*/
				/*// АналитикаУчетаЗатрат
*/
				/*// АналитикаУчетаПартий
*/
				/*// АналитикаУчетаВыпуска
*/
				/*ВидДвиженияНакопления.Приход,
			Неопределено,
			0,
			Выборка.СтоимостьОстаток,
			0,
			0,
			0,
			НаборЗаписей
		);*/
				//ОстатокНаСубсчете16 = СоответствиеОстаткиНаСчете16[Выборка.СчетУчетаОтклонений];
				//СоответствиеОстаткиНаСчете16.Вставить(Выборка.СчетУчетаОтклонений, ?(ОстатокНаСубсчете16 = Неопределено, 0, ОстатокНаСубсчете16) + Выборка.СтоимостьОстаток);
			}
			/*//Остатки по счету 16 с прошлого периода
*/
			/*Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	КлючАналитикаВидаУчета.СчетУчета КАК СчетУчетаОтклонений,
	|	СУММА(УчетЗатратРеглОстатки.СтоимостьОстаток) КАК СтоимостьОстаток
	|ИЗ
	|	РегистрНакопления.УчетЗатратРегл.Остатки(
	|			&ДатаДокумента,
	|			АналитикаВидаУчета В
	|				(ВЫБРАТЬ
	|					КлючАналитикаВидаУчета.Ссылка
	|				ИЗ
	|					РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
	|				ГДЕ
	|					КлючАналитикаВидаУчета.Организация = &Организация
	|					И КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиМЦ)))) КАК УчетЗатратРеглОстатки
	|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	|	РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
	|ПО УчетЗатратРеглОстатки.АналитикаВидаУчета = КлючАналитикаВидаУчета.Ссылка
	|СГРУППИРОВАТЬ ПО
	|	КлючАналитикаВидаУчета.СчетУчета");*/
			//Запрос.УстановитьПараметр("Организация",СтруктураШапкиДокумента.Организация);
			//Запрос.УстановитьПараметр("ДатаДокумента",СтруктураШапкиДокумента.мКонГраница);
			//Выборка = Запрос.Выполнить().Выбрать();
			while(true/*Выборка.Следующий()*/)
			{
				//ОстатокНаСубсчете16 = СоответствиеОстаткиНаСчете16[Выборка.СчетУчетаОтклонений];
				//СоответствиеОстаткиНаСчете16.Вставить(Выборка.СчетУчетаОтклонений, ?(ОстатокНаСубсчете16 = Неопределено, 0, ОстатокНаСубсчете16) + Выборка.СтоимостьОстаток);
			}
			/*//Распределение счета 16
*/
			/*//Определим остаток по разделу учета МПЗ на конец периода
*/
			/*Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	СУММА(ВложенныйЗапрос.СтоимостьОстаток) КАК СтоимостьОстаток,
	|	ВложенныйЗапрос.СчетУчетаОтклонений
	|ИЗ
	|	(ВЫБРАТЬ
	|		УчетЗатратРегл.СтоимостьОстаток КАК СтоимостьОстаток,
	|		КлючАналитикаВидаУчета.РазделУчета КАК РазделУчета,
	|		ВЫБОР
	|			КОГДА КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары))
	|				ИЛИ КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыОтгруженные))
	|				ТОГДА ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиТоваров)
	|			ИНАЧЕ ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиМатериалов)
	|		КОНЕЦ КАК СчетУчетаОтклонений
	|	ИЗ
	|		РегистрНакопления.УчетЗатратРегл.Остатки(&ДатаДокумента, ) КАК УчетЗатратРегл
	|			ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
	|			ПО УчетЗатратРегл.АналитикаВидаУчета = КлючАналитикаВидаУчета.Ссылка
	|	ГДЕ
	|		КлючАналитикаВидаУчета.Организация = &Организация
	|		И (КлючАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.МПЗ)
	|			ИЛИ КлючАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.ТоварыОтгруженные))
	|		И (КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары))
	|			ИЛИ КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы))
	|			ИЛИ КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыОтгруженные)))
	|		И (НЕ КлючАналитикаВидаУчета.СчетУчета.Забалансовый)) КАК ВложенныйЗапрос
	|
	|СГРУППИРОВАТЬ ПО
	|	ВложенныйЗапрос.СчетУчетаОтклонений");*/
			//Запрос.УстановитьПараметр("Организация",СтруктураШапкиДокумента.Организация);
			//Запрос.УстановитьПараметр("ДатаДокумента",СтруктураШапкиДокумента.мКонГраница);
			//Выборка = Запрос.Выполнить().Выбрать();
			//СоответствиеОстаткиПоРазделуУчетаМПЗ 			= Новый Соответствие();
			while(true/*Выборка.Следующий()*/)
			{
				//СоответствиеОстаткиПоРазделуУчетаМПЗ.Вставить(Выборка.СчетУчетаОтклонений, Выборка.СтоимостьОстаток);
			}
			/*// Определим направления списания МПЗ
*/
			/*// Первый запрос пакета выбирает данные о списании МПЗ,
*/
			/*// второй - собирает итоги по счетам учета отклонений
*/
			/*Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	УчетЗатратРегл.КодОперации,
	|	УчетЗатратРегл.КорАналитикаВидаУчета,
	|	УчетЗатратРегл.КорАналитикаУчетаЗатрат,
	|	УчетЗатратРегл.КорАналитикаУчетаПартий,
	|	УчетЗатратРегл.КорАналитикаРаспределенияЗатрат,
	|	КлючАналитикаВидаУчета.СчетУчета,
	|	СУММА(УчетЗатратРегл.Стоимость) КАК Стоимость
	|ПОМЕСТИТЬ НаправленияСписания
	|ИЗ
	|	РегистрНакопления.УчетЗатратРегл КАК УчетЗатратРегл
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
	|		ПО УчетЗатратРегл.АналитикаВидаУчета = КлючАналитикаВидаУчета.Ссылка
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПартий КАК КлючАналитикаУчетаПартий
	|		ПО УчетЗатратРегл.АналитикаУчетаПартий = КлючАналитикаУчетаПартий.Ссылка
	|ГДЕ
	|	КлючАналитикаВидаУчета.Организация = &Организация
	|	И (КлючАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.МПЗ)
	|			ИЛИ КлючАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.ТоварыОтгруженные))
	|	И (КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары))
	|			ИЛИ КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы))
	|			ИЛИ КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыОтгруженные)))
	|	И УчетЗатратРегл.Период МЕЖДУ &НачалоМесяца И &КонецМесяца
	|	И УчетЗатратРегл.Активность
	|	И УчетЗатратРегл.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
	|	И (УчетЗатратРегл.КорАналитикаВидаУчета ССЫЛКА Справочник.КлючиАналитикиУчетаПрочихЗатрат
	|			ИЛИ УчетЗатратРегл.КорАналитикаВидаУчета В
	|				(ВЫБРАТЬ
	|					КлючКорАналитикаВидаУчета.Ссылка
	|				ИЗ
	|					РегистрСведений.АналитикаВидаУчета КАК КлючКорАналитикаВидаУчета
	|				ГДЕ
	|					(НЕ КлючКорАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.МПЗ))
	|					И (НЕ КлючКорАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.ТоварыОтгруженные))))
	|	И (НЕ КлючАналитикаВидаУчета.СчетУчета.Забалансовый)
	|	И УчетЗатратРегл.КодОперации <> ЗНАЧЕНИЕ(Перечисление.КодыОперацийПартииТоваров.ПередачаТарыКонтрагенту)
	|	И УчетЗатратРегл.КодОперации <> ЗНАЧЕНИЕ(Перечисление.КодыОперацийПартииТоваров.ВозвратПоставщику)
	|
	|СГРУППИРОВАТЬ ПО
	|	УчетЗатратРегл.КодОперации,
	|	УчетЗатратРегл.КорАналитикаВидаУчета,
	|	УчетЗатратРегл.КорАналитикаУчетаЗатрат,
	|	УчетЗатратРегл.КорАналитикаУчетаПартий,
	|	УчетЗатратРегл.КорАналитикаРаспределенияЗатрат,
	|	КлючАналитикаВидаУчета.СчетУчета;
	|////////////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	НаправленияСписания.КодОперации,
	|	НаправленияСписания.КорАналитикаВидаУчета,
	|	НаправленияСписания.КорАналитикаУчетаЗатрат,
	|	НаправленияСписания.КорАналитикаУчетаПартий,
	|	НаправленияСписания.КорАналитикаРаспределенияЗатрат,
	|	ВЫБОР
	|		КОГДА НаправленияСписания.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары))
	|				ИЛИ НаправленияСписания.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыОтгруженные))
	|			ТОГДА ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиТоваров)
	|		ИНАЧЕ ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиМатериалов)
	|	КОНЕЦ КАК СчетУчетаОтклонений,
	|	НаправленияСписания.Стоимость
	|ИЗ
	|	НаправленияСписания КАК НаправленияСписания
	|ИТОГИ СУММА(НаправленияСписания.Стоимость) 
	|	ПО СчетУчетаОтклонений;
	|//////////////////////////////////////////////////////////////////////////////////////////
	|УНИЧТОЖИТЬ НаправленияСписания");*/
			//Запрос.УстановитьПараметр("Организация",СтруктураШапкиДокумента.Организация);
			//Запрос.УстановитьПараметр("НачалоМесяца",СтруктураШапкиДокумента.мНачДата);
			//Запрос.УстановитьПараметр("КонецМесяца",СтруктураШапкиДокумента.мКонДата);
			//ОбщийИтог = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
			while(true/*ОбщийИтог.Следующий()*/)
			{
				//СчетУчетаОтклонений = ОбщийИтог.СчетУчетаОтклонений;
				//ОстатокПоРазделуУчетаМПЗ = СоответствиеОстаткиПоРазделуУчетаМПЗ[СчетУчетаОтклонений];
				//ОстатокНаСчете16 = СоответствиеОстаткиНаСчете16[СчетУчетаОтклонений];
				if(true/*ОстатокПоРазделуУчетаМПЗ = Неопределено*/)
				{
					//ОстатокПоРазделуУчетаМПЗ = 0;
				}
				if(true/*ОстатокНаСчете16 = Неопределено*/)
				{
					//ОстатокНаСчете16 = 0;
				}
				//СуммаСписанияМПЗ = ОбщийИтог.Стоимость;
				if(true/*ОстатокПоРазделуУчетаМПЗ = 0*/)
				{
					if(true/*СуммаСписанияМПЗ = 0*/)
					{
						//СуммаСписанияТЗР = 0;
					}
				}
				/*//Спишем оставшуюся на счете 16 сумму по направлениям
*/
				if(true/*СуммаСписанияМПЗ > 0 И СуммаСписанияТЗР <> 0*/)
				{
					//Выборка = ОбщийИтог.Выбрать();
					while(true/*Выборка.Следующий()*/)
					{
						if(true/*СуммаСписанияМПЗ = 0*/)
						{
							//ОбщегоНазначения.Сообщение("Распределение счета 16 выполнено не полностью. Проверьте базу распределения.",СтатусСообщения.Внимание);
						}
						//СуммаСписанияТЗРПоНаправлению = Окр(Выборка.Стоимость * СуммаСписанияТЗР/СуммаСписанияМПЗ,2);
						/*АналитикаВидаУчета = РасширеннаяАналитикаУчета.ПолучитьЗначениеКлючаАналитики(
									СтруктураШапкиДокумента,
									Новый Структура("РазделУчета, СчетУчета, Организация",Перечисления.РазделыУчета.Затраты, СчетУчетаОтклонений, СтруктураШапкиДокумента.Организация),
									Перечисления.КлючиАналитики.АналитикаВидаУчета,
									Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете,
									СтруктураКлючиАналитики
								);*/
						/*// КорАналитикаВидаУчета
*/
						/*// КорАналитикаУчетаЗатрат
*/
						/*// КорАналитикаУчетаПартий
*/
						/*// КорАналитикаУчетаВыпуска
*/
						/*// АналитикаВидаУчета
*/
						/*// АналитикаУчетаЗатрат
*/
						/*// АналитикаУчетаПартий
*/
						/*// АналитикаУчетаВыпуска
*/
						/*ВидДвиженияНакопления.Расход,
					Выборка.КодОперации,
					0,
					СуммаСписанияТЗРПоНаправлению,
					0,
					0,
					0,
					НаборЗаписей
				);*/
						/*// АналитикаВидаУчета
*/
						/*// АналитикаУчетаЗатрат
*/
						/*// АналитикаУчетаПартий
*/
						/*// АналитикаУчетаВыпуска
*/
						/*// КорАналитикаВидаУчета
*/
						/*// КорАналитикаУчетаЗатрат
*/
						/*// КорАналитикаУчетаПартий
*/
						/*// КорАналитикаУчетаВыпуска
*/
						/*ВидДвиженияНакопления.Приход,
					Выборка.КодОперации,
					0,
					СуммаСписанияТЗРПоНаправлению,
					0,
					0,
					0,
					НаборЗаписей
				);*/
						//СуммаСписанияМПЗ = СуммаСписанияМПЗ - Выборка.Стоимость;
						//СуммаСписанияТЗР = СуммаСписанияТЗР - СуммаСписанияТЗРПоНаправлению;
					}
					//;;
				}
			}
			if(true/*СтруктураНаборыЗаписей.УчетЗатрат.Модифицированность()*/)
			{
				//СтруктураНаборыЗаписей.УчетЗатрат.Записать(Ложь);
			}
		}
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//ПРОЦЕДУРЫ ВКЛЮЧЕНИЯ НДС В ЗАТРАТЫ

		public void ВключитьНДСВЗатраты(/*СтруктураШапкиДокумента*/)
		{
			//СтруктураНаборыЗаписей 	= РасширеннаяАналитикаУчета.ПолучитьНаборыЗаписейРегистров(СтруктураШапкиДокумента);
			//СтруктураКлючиАналитики = Новый Структура;
			//КэшПоИерархииСчетов 	= Новый Структура;
			//СпособОтраженияВключенияНДСВСтоимость = СтруктураШапкиДокумента.УчетнаяПолитика.СпособОтраженияВБухгалтерскомУчетеВключенияНДСВСтоимость;
			/*// 1. Обрабатываем только документы перемещения и комплектации.
*/
			/*// 2. Необходимость включения НДС в стоимость или списания на расходы определяется учетной политикой.
*/
			/*// 3. Для включения/исключения НДС из стоимости нужно формировать движения с разным знаком.
*/
			//Запрос = Новый Запрос;
			//Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
			//Запрос.УстановитьПараметр("НачДата",	 СтруктураШапкиДокумента.мНачДата);
			//Запрос.УстановитьПараметр("КонДата",	 СтруктураШапкиДокумента.мКонДата);
			//Запрос.УстановитьПараметр("Организация", СтруктураШапкиДокумента.Организация);
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	НДСПартииТоваровОбороты.Организация,
	|	НДСПартииТоваровОбороты.СчетУчета,
	|	НДСПартииТоваровОбороты.Номенклатура,
	|	НДСПартииТоваровОбороты.ХарактеристикаНоменклатуры,
	|	НДСПартииТоваровОбороты.СерияНоменклатуры,
	|	НДСПартииТоваровОбороты.Склад,
	|	НДСПартииТоваровОбороты.СчетФактура,
	|	НДСПартииТоваровОбороты.Регистратор,
	|	НДСПартииТоваровОбороты.НДСВключенВСтоимость,
	|	НДСПартииТоваровОбороты.НДСОборот КАК НДСПриход
	|ПОМЕСТИТЬ НДСПартииТоваровОбороты
	|ИЗ
	|	РегистрНакопления.НДСПартииТоваров.Обороты(
	|			&НачДата,
	|			&КонДата,
	|			Регистратор,
	|			Организация = &Организация) КАК НДСПартииТоваровОбороты
	|ГДЕ
	|	(НДСПартииТоваровОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
	|			ИЛИ НДСПартииТоваровОбороты.Регистратор ССЫЛКА Документ.КомплектацияНоменклатуры)
	|;";*/
			//Запрос.Выполнить();
			if(true/*СпособОтраженияВключенияНДСВСтоимость = Перечисления.НДССпособОтраженияВБухгалтерскомУчетеПриВключенииВСтоимость.ВключатьВСтоимость
		ИЛИ СпособОтраженияВключенияНДСВСтоимость = Перечисления.НДССпособОтраженияВБухгалтерскомУчетеПриВключенииВСтоимость.ВСоответствииСоСт170НКРФ*/)
			{
				/*// Отразим в учете затрат включение НДС в стомость МПЗ
*/
				/*Запрос.Текст = 
		"ВЫБРАТЬ
		|	НДСПартииТоваровОбороты.Организация						КАК Организация,
		|	НДСПартииТоваровОбороты.СчетУчета 						КАК КорСчетУчета,
		|	НДСПартииТоваровОбороты.Номенклатура					КАК Номенклатура,
		|	НДСПартииТоваровОбороты.ХарактеристикаНоменклатуры		КАК ХарактеристикаНоменклатуры,
		|	НДСПартииТоваровОбороты.СерияНоменклатуры				КАК СерияНоменклатуры,
		|	НДСПартииТоваровОбороты.Склад							КАК Склад,
		|	СУММА(ВЫБОР
		|			КОГДА НДСПартииТоваровОбороты.Регистратор.НДСвСтоимостиТоваров = ЗНАЧЕНИЕ(Перечисление.ДействиеНДСВСтоимостиТоваров.ВключитьВСтоимость)
		|					И НДСПартииТоваровОбороты.НДСВключенВСтоимость
		|				ТОГДА НДСПартииТоваровОбороты.НДСПриход
		|			КОГДА НДСПартииТоваровОбороты.Регистратор.НДСвСтоимостиТоваров = ЗНАЧЕНИЕ(Перечисление.ДействиеНДСВСтоимостиТоваров.ИсключитьИзСтоимости)
		|					И (НЕ НДСПартииТоваровОбороты.НДСВключенВСтоимость)
		|				ТОГДА -НДСПартииТоваровОбороты.НДСПриход
		|			ИНАЧЕ 0
		|		КОНЕЦ) 												КАК НДСПриход
		|ИЗ
		|	НДСПартииТоваровОбороты КАК НДСПартииТоваровОбороты
		|ГДЕ
		|	(НДСПартииТоваровОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
		|			ИЛИ НДСПартииТоваровОбороты.Регистратор ССЫЛКА Документ.КомплектацияНоменклатуры
		|				И НДСПартииТоваровОбороты.Регистратор.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийКомплектацияНоменклатуры.КомплектацияНоменклатуры))
		|	И (&ВключатьНДСВСтоимость ИЛИ НДСПартииТоваровОбороты.СчетФактура <> НЕОПРЕДЕЛЕНО)
		|
		|СГРУППИРОВАТЬ ПО
		|	НДСПартииТоваровОбороты.Склад,
		|	НДСПартииТоваровОбороты.ХарактеристикаНоменклатуры,
		|	НДСПартииТоваровОбороты.Номенклатура,
		|	НДСПартииТоваровОбороты.СерияНоменклатуры,
		|	НДСПартииТоваровОбороты.СчетУчета,
		|	НДСПартииТоваровОбороты.СчетФактура,
		|	НДСПартииТоваровОбороты.Организация
		|
		|ИМЕЮЩИЕ
		|	СУММА(ВЫБОР
		|			КОГДА НДСПартииТоваровОбороты.Регистратор.НДСвСтоимостиТоваров = ЗНАЧЕНИЕ(Перечисление.ДействиеНДСВСтоимостиТоваров.ВключитьВСтоимость)
		|					И НДСПартииТоваровОбороты.НДСВключенВСтоимость
		|				ТОГДА НДСПартииТоваровОбороты.НДСПриход
		|			КОГДА НДСПартииТоваровОбороты.Регистратор.НДСвСтоимостиТоваров = ЗНАЧЕНИЕ(Перечисление.ДействиеНДСВСтоимостиТоваров.ИсключитьИзСтоимости)
		|					И (НЕ НДСПартииТоваровОбороты.НДСВключенВСтоимость)
		|				ТОГДА -НДСПартииТоваровОбороты.НДСПриход
		|			ИНАЧЕ 0
		|		КОНЕЦ) <> 0";*/
				//Запрос.УстановитьПараметр("ВключатьНДСВСтоимость", СпособОтраженияВключенияНДСВСтоимость = Перечисления.НДССпособОтраженияВБухгалтерскомУчетеПриВключенииВСтоимость.ВключатьВСтоимость);
				//ТаблицаВключенияВСтоимость = Запрос.Выполнить().Выгрузить();
			}
			if(true/*СпособОтраженияВключенияНДСВСтоимость = Перечисления.НДССпособОтраженияВБухгалтерскомУчетеПриВключенииВСтоимость.СписыватьНаРасходы
		ИЛИ СпособОтраженияВключенияНДСВСтоимость = Перечисления.НДССпособОтраженияВБухгалтерскомУчетеПриВключенииВСтоимость.ВСоответствииСоСт170НКРФ*/)
			{
				/*// Отразим в учете затрат списание НДС на расходы
*/
				/*Запрос.Текст = 
		"ВЫБРАТЬ
		|	НДСПартииТоваровОбороты.Организация								КАК Организация,
		|	НДСПартииТоваровОбороты.Регистратор.СчетСписанияНДС 			КАК КорСчетУчета,
		|	НДСПартииТоваровОбороты.Регистратор.ПодразделениеОрганизации 	КАК Подразделение,
		|	НДСПартииТоваровОбороты.Регистратор.СтатьяЗатратСписанияНДС 	КАК СтатьяЗатрат,
		|	НДСПартииТоваровОбороты.Регистратор.НоменклатурнаяГруппа		КАК НоменклатурнаяГруппа,
		|	СУММА(ВЫБОР
		|			КОГДА НДСПартииТоваровОбороты.Регистратор.НДСвСтоимостиТоваров = ЗНАЧЕНИЕ(Перечисление.ДействиеНДСВСтоимостиТоваров.ВключитьВСтоимость)
		|					И НДСПартииТоваровОбороты.НДСВключенВСтоимость
		|				ТОГДА НДСПартииТоваровОбороты.НДСПриход
		|			КОГДА НДСПартииТоваровОбороты.Регистратор.НДСвСтоимостиТоваров = ЗНАЧЕНИЕ(Перечисление.ДействиеНДСВСтоимостиТоваров.ИсключитьИзСтоимости)
		|					И (НЕ НДСПартииТоваровОбороты.НДСВключенВСтоимость)
		|				ТОГДА -НДСПартииТоваровОбороты.НДСПриход
		|			ИНАЧЕ 0
		|		КОНЕЦ) 														КАК НДСПриход
		|ИЗ
		|	НДСПартииТоваровОбороты КАК НДСПартииТоваровОбороты
		|ГДЕ
		|	(НДСПартииТоваровОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
		|		ИЛИ НДСПартииТоваровОбороты.Регистратор ССЫЛКА Документ.КомплектацияНоменклатуры
		|			И НДСПартииТоваровОбороты.Регистратор.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийКомплектацияНоменклатуры.КомплектацияНоменклатуры))
		|	И (&СписыватьНДСНаРасходы ИЛИ НДСПартииТоваровОбороты.СчетФактура = НЕОПРЕДЕЛЕНО)
		|
		|СГРУППИРОВАТЬ ПО
		|	НДСПартииТоваровОбороты.Организация,
		|	НДСПартииТоваровОбороты.Регистратор.СчетСписанияНДС,
		|	НДСПартииТоваровОбороты.Регистратор.ПодразделениеОрганизации,
		|	НДСПартииТоваровОбороты.Регистратор.СтатьяЗатратСписанияНДС,
		|	НДСПартииТоваровОбороты.Регистратор.НоменклатурнаяГруппа
		|	
		|ИМЕЮЩИЕ
		|	СУММА(ВЫБОР
		|			КОГДА НДСПартииТоваровОбороты.Регистратор.НДСвСтоимостиТоваров = ЗНАЧЕНИЕ(Перечисление.ДействиеНДСВСтоимостиТоваров.ВключитьВСтоимость)
		|					И НДСПартииТоваровОбороты.НДСВключенВСтоимость
		|				ТОГДА НДСПартииТоваровОбороты.НДСПриход
		|			КОГДА НДСПартииТоваровОбороты.Регистратор.НДСвСтоимостиТоваров = ЗНАЧЕНИЕ(Перечисление.ДействиеНДСВСтоимостиТоваров.ИсключитьИзСтоимости)
		|					И (НЕ НДСПартииТоваровОбороты.НДСВключенВСтоимость)
		|				ТОГДА -НДСПартииТоваровОбороты.НДСПриход
		|			ИНАЧЕ 0
		|		КОНЕЦ) <> 0";*/
				//Запрос.УстановитьПараметр("СписыватьНДСНаРасходы", СпособОтраженияВключенияНДСВСтоимость = Перечисления.НДССпособОтраженияВБухгалтерскомУчетеПриВключенииВСтоимость.СписыватьНаРасходы);
				//ТаблицаСписанияНДСНаРасходы = Запрос.Выполнить().Выгрузить();
			}
		}
		////////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ ФОРМИРУЮЩИЕ ДВИЖЕНИЯ ПО ПРИНЯТЫМ ТМЦ ДЛЯ РА
		// Функция формирует структуру, содержащую наборы записей бухгалтерских регистров
		//

		public object ПолучитьСтруктуруДвиженийПоБухгалтерскимРегистрам(/*Регистратор*/)
		{
			//Движения = Новый Структура();
			//Движения.Вставить("Хозрасчетный",РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей());
			//Движения.Хозрасчетный.Отбор.Регистратор.Установить(Регистратор);
			//Движения.Вставить("Налоговый",РегистрыБухгалтерии.Налоговый.СоздатьНаборЗаписей());
			//Движения.Налоговый.Отбор.Регистратор.Установить(Регистратор);
			return null;
		}
		// Процедура - 	формирует движения по принятым товарам по документу ОтчетКомитетну для расширенной аналитики
		// Параметры:
		//  СтруктураШапкиДокумента - структура содержащая реквизиты шапки документа,
		//  ТаблицаПоТоварам - таблица значений, соответствующая табличной части,
		//  Движения - коллекция движений документа.
		//

		public void СформироватьДвиженияПоОтчетуКомитенту(/*СтруктураШапкиДокумента, ТаблицаПоТоварам*/)
		{
			if(true/*СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете*/)
			{
				//Движения = ПолучитьСтруктуруДвиженийПоБухгалтерскимРегистрам(СтруктураШапкиДокумента.Ссылка);
				//СчетаУчета = БухгалтерскийУчетРасчетовСКонтрагентами.ПолучитьСчетаРасчетовСКонтрагентом(СтруктураШапкиДокумента.Организация, СтруктураШапкиДокумента.Контрагент, СтруктураШапкиДокумента.ДоговорКонтрагента);
				/*//Определим дату первого поступления на комиссию, за которое отчитываемся
*/
				//ДатаПервогоПоступления = СтруктураШапкиДокумента.Дата;
				//ДатаПереходаНаРасширеннуюАналитику = глЗначениеПеременной("ДатаНачалаИспользованияРасширеннойАналитикиУчетаНоменклатурыИЗатрат");
				/*//Переформируем проводки по счету расчетов с комитентом
*/
				/*Запрос = Новый Запрос("ВЫБРАТЬ
		                      |	ХозрасчетныйОборотыДтКт.СчетДт КАК СчетДт,
		                      |	ХозрасчетныйОборотыДтКт.СубконтоДт1 КАК СубконтоДт1,
		                      |	ХозрасчетныйОборотыДтКт.СубконтоДт2 КАК СубконтоДт2,
		                      |	ХозрасчетныйОборотыДтКт.ВалютаДт КАК ВалютаДт,
		                      |	ХозрасчетныйОборотыДтКт.ВалютнаяСуммаОборотДт,
		                      |	ХозрасчетныйОборотыДтКт.СуммаОборот
		                      |ИЗ
		                      |	РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
		                      |			&ДатаПервогоПоступления,
		                      |			&ТекущаяДата,
		                      |			,
		                      |			,
		                      |			,
		                      |			СчетКт = &СчетРасчетовСКомитентом,
		                      |			,
		                      |			Организация = &Организация
		                      |				И СубконтоКт1 = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) КАК ХозрасчетныйОборотыДтКт
		                      |
		                      |УПОРЯДОЧИТЬ ПО
		                      |	СчетДт,
		                      |	СубконтоДт1,
		                      |	СубконтоДт2,
		                      |	ВалютаКт");*/
				//Запрос.УстановитьПараметр("ДатаПервогоПоступления",ДатаПервогоПоступления);
				//Запрос.УстановитьПараметр("СчетРасчетовСКомитентом",ПланыСчетов.Хозрасчетный.ПрочиеРасчетыСРазнымиДебиторамиИКредиторами);
				//Запрос.УстановитьПараметр("ТекущаяДата",СтруктураШапкиДокумента.Дата);
				//Запрос.УстановитьПараметр("Организация",СтруктураШапкиДокумента.Организация);
				//СуммыВыручки = ТаблицаПоТоварам.Итог("Выручка");
				/*СуммыВыручкиБУ = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СуммыВыручки
									,СтруктураШапкиДокумента.ВалютаВзаиморасчетов,СтруктураШапкиДокумента.ВалютаРегламентированногоУчета
									,СтруктураШапкиДокумента.КурсВзаиморасчетов,1
									,СтруктураШапкиДокумента.КратностьВзаиморасчетов,1);*/
				//ТаблицаРеализованныхТоваровКомитента = Запрос.Выполнить().Выгрузить();
				//ЗаписатьСтруктуруДвиженийВБазуДанных(Движения);
			}
		}
		// СформироватьДвиженияПоОтчетуКомитенту()
		// Процедура - 	формирует движения по принятым в переработку материалам по документу РеализацияУслугПоПереработке для расширенной аналитики
		// Параметры:
		//  СтруктураШапкиДокумента - структура содержащая реквизиты шапки документа,
		//  ТаблицаПоТоварам - таблица значений, соответствующая табличной части,
		//  Движения - коллекция движений документа.
		//

		public void СформироватьДвиженияПоРеализацииУслугПоПереработке(/*СтруктураШапкиДокумента, ТаблицаПоТоварам*/)
		{
			if(true/*СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете*/)
			{
				//Движения = ПолучитьСтруктуруДвиженийПоБухгалтерскимРегистрам(СтруктураШапкиДокумента.Ссылка);
				//ЗаписатьСтруктуруДвиженийВБазуДанных(Движения);
			}
		}
		// Процедура - 	формирует движения реализации принятого на комиссию товара для расширенной аналитики
		// Параметры:
		//  СтруктураШапкиДокумента - структура содержащая реквизиты шапки документа,
		//  СтруктураТабличныхЧастей - структура, содержащая табличные части документа,
		//  Ссылка - ссылка на документ,
		//  Движения - коллекция движений документа,
		//  ЕстьБезналичныеРасчеты - булево.
		//

		public void СформироватьДвиженияПоРеализацииПринятогоНаКомиссиюТовара(/*СтруктураШапкиДокумента, СтруктураТабличныхЧастей, Ссылка, Движения, ЕстьБезналичныеРасчеты*/)
		{
			if(true/*СтруктураШапкиДокумента.ОтражатьВУправленческомУчете*/)
			{
				/*//Сформируем движения по реализованным товарам комитента
*/
				//НаборДвиженийРеализованныеТовары = Движения.РеализованныеТовары;
				//НаборДвиженийПродажиСебестоимость = Движения.ПродажиСебестоимость;
				/*// Получим таблицу значений, совпадающую со структурой набора записей регистра.
*/
				//ТаблицаДвиженийРеализованныеТовары = НаборДвиженийРеализованныеТовары.Выгрузить();
				//ТаблицаДвиженийПродажиСебестоимость = НаборДвиженийПродажиСебестоимость.Выгрузить();
				/*// Дополним таблицу товаров сведениями о конечных покупателях
*/
				if(true/*ТипЗНЧ(Ссылка) = Тип("ДокументСсылка.ОтчетКомиссионераОПродажах")*/)
				{
					//УчетНДС.ДополнитьСписанныеТоварыДаннымиПоКомиссии(Ссылка, СтруктураТабличныхЧастей.ТаблицаПоТоварам);
				}
				/*// Заполним таблицу движений.
*/
				//НаборДвиженийРеализованныеТовары.мПериод          = СтруктураШапкиДокумента.Дата;
				//НаборДвиженийРеализованныеТовары.мТаблицаДвижений = ТаблицаДвиженийРеализованныеТовары;
				//НаборДвиженийРеализованныеТовары.ВыполнитьПриход();
				//НаборДвиженийПродажиСебестоимость.мПериод          = СтруктураШапкиДокумента.Дата;
				//НаборДвиженийПродажиСебестоимость.мТаблицаДвижений = ТаблицаДвиженийПродажиСебестоимость;
				//НаборДвиженийПродажиСебестоимость.ВыполнитьДвижения();
			}
			if(true/*СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете*/)
			{
				/*//Сформируем проводки по принятому товару
*/
				if(true/*ТипЗНЧ(Ссылка) = Тип("ДокументСсылка.ОтчетОРозничныхПродажах")*/)
				{
					if(true/*ЕстьБезналичныеРасчеты*/)
					{
						//СчетДт = ПланыСчетов.Хозрасчетный.РасчетыСРозничнымиПокупателями;
					}
				}
				if(true/*СчетДт.Валютный*/)
				{
					//СписокВалютныхСумм = ", СуммаБезНДСВал, НДСВал";
				}
				//ТаблицаВыручкиДляБУ = СтруктураТабличныхЧастей.ТаблицаПоТоварам.Скопировать(Новый Структура("ПринадлежностьНоменклатуры", Перечисления.ПринадлежностьНоменклатуры.Принятый), "СтавкаНДС, СчетДоходовБУ, СчетРасходовБУ, СубконтоБУ, СчетДоходовНУ, СубконтоНУ, СуммаБезНДС, НДС"+СписокВалютныхСумм);
				//ТаблицаВыручкиДляБУ.Колонки.Добавить("СписаниеПартий", Новый ОписаниеТипов("Булево"));
				//ТаблицаВыручкиДляБУ.Свернуть("СтавкаНДС, СчетДоходовБУ, СчетРасходовБУ, СубконтоБУ, СчетДоходовНУ, СубконтоНУ, СписаниеПартий", "СуммаБезНДС, НДС"+СписокВалютныхСумм);
			}
		}
		// Процедура - 	формирует движения по передаче в производство и возврату из производства принятых для переработки материалов для расширенной аналитики
		// Параметры:
		//  СтруктураШапкиДокумента - структура содержащая реквизиты шапки документа,
		//  СтруктураТабличныхЧастей - структура, содержащая табличные части документа,
		//  Ссылка - ссылка на документ,
		//  Движения - коллекция движений документа.
		//

		public void СформироватьДвиженияПоПередачеДавальческихМатериаловВПроизводство(/*СтруктураШапкиДокумента, СтруктураТабличныхЧастей, Ссылка, Движения*/)
		{
			if(true/*СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете*/)
			{
				/*// Для оприходования материалов из производства количество в проводке будет отрицательным.
*/
				//Коэффициент = ?(ТипЗнч(Ссылка) = Тип("ДокументСсылка.ОприходованиеМатериаловИзПроизводства"), -1, 1);
				if(true/*ТипЗнч(Ссылка) = Тип("ДокументСсылка.ТребованиеНакладная")*/)
				{
					//ИмяТаблицыМатериалов = "ТаблицаПоТоварам";
				}
				//ТаблицаСписания = СтруктураТабличныхЧастей[ИмяТаблицыМатериалов].Скопировать(Новый Структура("ПринадлежностьНоменклатуры", Перечисления.ПринадлежностьНоменклатуры.Принятый), "Номенклатура, СчетУчетаБУ, Количество");
				//ТаблицаСписания.Свернуть("Номенклатура, СчетУчетаБУ", "Количество");
			}
		}
		// Процедура - 	формирует движения по возврату принятых для переработки материалов давальцу для расширенной аналитики
		// Параметры:
		//  СтруктураШапкиДокумента - структура содержащая реквизиты шапки документа,
		//  СтруктураТабличныхЧастей - структура, содержащая табличные части документа,
		//  Ссылка - ссылка на документ,
		//  Движения - коллекция движений документа.
		//

		public void СформироватьДвиженияВозвратаПринятыхМатериалов(/*СтруктураШапкиДокумента, СтруктураТабличныхЧастей, Ссылка, Движения, ВидОперации*/)
		{
			if(true/*СтруктураШапкиДокумента.ОтражатьВБухгалтерскомУчете*/)
			{
			}
		}
		// Процедура - 	обработчик подписки на событие
		//  Движения - коллекция движений документа.
		//

		public void СформироватьДвиженияПоУчетуПринятыхТМЦ(/*Источник, Отказ, РежимПроведения*/)
		{
			//СтруктураШапкиДокумента = Источник.мСтруктураШапкиДокумента;
			//СтруктураТабличныхЧастей = Источник.мСтруктураТабличныхЧастей;
			//Ссылка = Источник.Ссылка;
			//Движения = ПолучитьСтруктуруДвиженийПоБухгалтерскимРегистрам(Ссылка);
			if(true/*ТипЗНЧ(Ссылка) = Тип("ДокументСсылка.ОтчетКомиссионераОПродажах")
	  ИЛИ ТипЗНЧ(Ссылка) = Тип("ДокументСсылка.ОтчетОРозничныхПродажах")	
	  ИЛИ ((ТипЗНЧ(Ссылка) = Тип("ДокументСсылка.РеализацияТоваровУслуг")
	  			ИЛИ (ТипЗНЧ(Ссылка) = Тип("ДокументСсылка.КорректировкаРеализации") И СтруктураШапкиДокумента.КорректироватьБУиНУ)
	  			ИЛИ ТипЗНЧ(Ссылка) = Тип("ДокументСсылка.ВозвратТоваровОтПокупателя"))
	  		И СтруктураШапкиДокумента.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем)*/)
			{
				if(true/*ТипЗНЧ(Ссылка) = Тип("ДокументСсылка.ОтчетОРозничныхПродажах")*/)
				{
					//ЕстьБезналичныеРасчеты = СтруктураШапкиДокумента.ЕстьБезналичныеРасчеты;
				}
				//Движения.Вставить("РеализованныеТовары",РегистрыНакопления.РеализованныеТовары.СоздатьНаборЗаписей());
				//Движения.РеализованныеТовары.Отбор.Регистратор.Установить(Ссылка);
				//Движения.Вставить("ПродажиСебестоимость",РегистрыНакопления.ПродажиСебестоимость.СоздатьНаборЗаписей());
				//Движения.ПродажиСебестоимость.Отбор.Регистратор.Установить(Ссылка);
				//СформироватьДвиженияПоРеализацииПринятогоНаКомиссиюТовара(СтруктураШапкиДокумента, СтруктураТабличныхЧастей, Ссылка, Движения, ЕстьБезналичныеРасчеты);
			}
			/*//Запись движений в БД
*/
			//ЗаписатьСтруктуруДвиженийВБазуДанных(Движения);
		}
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//ПРОЦЕДУРЫ ОБСЛУЖИВАНИЯ ФУНКЦИЙ УЧЕТА ЗАТРАТ

		public void РасчетЦеныНоменклатурыНаСервере(/*Настройка, ВызываетсяИзФормыНастройки = Ложь*/)
		{
			//МодульРегламентныхЗаданий.РасчетЦеныНоменклатуры(Настройка, ВызываетсяИзФормыНастройки);
		}

		public void РасчитатьЦенуНоменклатуры(/*СтруктураПараметров, ТекстЗапроса, ПараметрыЗапроса*/)
		{
			if(true/*ЗначениеЗаполнено(СтруктураПараметров.НастройкаРасчетаСебестоимости)*/)
			{
				/*//Сначала расчитаем себестоимость	
*/
				//СтруктураПараметровРасчетаСебестоимости = Новый Структура("Организация, НастройкаЗакрытияМесяца, ВидОтраженияВУчете, Задержка");
				//ЗаполнитьЗначенияСвойств(СтруктураПараметровРасчетаСебестоимости, СтруктураПараметров.НастройкаРасчетаСебестоимости);
				//СтруктураПараметровРасчетаСебестоимости.Вставить("ВыполняемыеДействия", СтруктураПараметров.НастройкаРасчетаСебестоимости.ВыполняемыеДействия.Выгрузить());
				//РасчитатьСебестоимость(СтруктураПараметровРасчетаСебестоимости);
			}
			//Запрос = Новый Запрос;
			//Запрос.Текст = ТекстЗапроса;
			//Запрос.УстановитьПараметр("ДатаНачала",    НачалоМесяца(ТекущаяДата()));
			//Запрос.УстановитьПараметр("ДатаОкончания", КонецМесяца(ТекущаяДата()));
			//Результат = Запрос.Выполнить();
			if(true/*НЕ Результат.Пустой()*/)
			{
				if(true/*СтруктураПараметров.СоздаватьНовыйДокумент*/)
				{
					//ДокументОбъект = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
					//ДокументОбъект.Дата = НачалоДня(ТекущаяДата());
					//СтрокаСТипомЦен = ДокументОбъект.ТипыЦен.Добавить();
					//СтрокаСТипомЦен.ТипЦен = СтруктураПараметров.ТипЦен;
				}
				if(true/*СтруктураПараметров.ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
				{
					//Валюта = глЗначениеПеременной("ВалютаУправленческогоУчета");
				}
				//ДокументОбъект.Товары.Очистить();
				//Выборка = Результат.Выбрать();
				while(true/*Выборка.Следующий()*/)
				{
					if(true/*ЗначениеЗаполнено(Выборка.Номенклатура)*/)
					{
						if(true/*СтруктураПараметров.ПорядокФормированияЦены = 0*/)
						{
							//Цена = ?(Выборка.КоличествоРасход = 0, 0, Выборка.СтоимостьРасход/Выборка.КоличествоРасход);
						}
						/*Цена = Ценообразование.ОкруглитьЦену(
					Цена,
					СтруктураПараметров.ТипЦен.ПорядокОкругления,
					СтруктураПараметров.ТипЦен.ОкруглятьВБольшуюСторону);*/
						if(true/*Цена <> 0*/)
						{
							//НоваяСтрока = ДокументОбъект.Товары.Добавить();
							//НоваяСтрока.Номенклатура 			= Выборка.Номенклатура;
							//НоваяСтрока.ЕдиницаИзмерения 		= НоваяСтрока.Номенклатура.ЕдиницаХраненияОстатков;
							//НоваяСтрока.Валюта 					= Валюта;
							//НоваяСтрока.ТипЦен 					= СтруктураПараметров.ТипЦен;
							//НоваяСтрока.Цена 					= Цена;
							//НоваяСтрока.ИндексСтрокиТаблицыЦен 	= НоваяСтрока.НомерСтроки-1;
							//НоваяСтрока.СпособРасчетаЦены 		= СтруктураПараметров.ТипЦен.СпособРасчетаЦены;
						}
					}
				}
				/*;
		
		ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);*/
			}
		}

		public void РасчитатьСебестоимость(/*СтруктураПараметров*/)
		{
			//Запрос = Новый Запрос;
			/*Запрос.Текст =
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	РасчетСебестоимостиВыпуска.Ссылка
	|ИЗ
	|	Документ.РасчетСебестоимостиВыпуска КАК РасчетСебестоимостиВыпуска
	|ГДЕ
	|	РасчетСебестоимостиВыпуска.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Дата, МЕСЯЦ)
	|	И РасчетСебестоимостиВыпуска.Проведен
	|	И РасчетСебестоимостиВыпуска.Организация = &Организация
	|	И РасчетСебестоимостиВыпуска.ОтражатьВУправленческомУчете = &ОтражатьВУправленческомУчете
	|	И РасчетСебестоимостиВыпуска.ОтражатьВБухгалтерскомУчете = &ОтражатьВБухгалтерскомУчете
	|
	|УПОРЯДОЧИТЬ ПО
	|	РасчетСебестоимостиВыпуска.Дата,
	|	РасчетСебестоимостиВыпуска.Ссылка";*/
			//ДатаДокумента = ДобавитьМесяц(ТекущаяДата(), - СтруктураПараметров.Задержка);
			if(true/*СтруктураПараметров.ВидОтраженияВУчете = Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете*/)
			{
				//ОтражатьВУправленческомУчете = Истина;
				//ОтражатьВБухгалтерскомУчете = Ложь;
			}
			//Запрос.УстановитьПараметр("Дата",							ДатаДокумента);
			//Запрос.УстановитьПараметр("Организация", 					СтруктураПараметров.Организация);
			//Запрос.УстановитьПараметр("ОтражатьВУправленческомУчете", 	ОтражатьВУправленческомУчете);
			//Запрос.УстановитьПараметр("ОтражатьВБухгалтерскомУчете", 	ОтражатьВБухгалтерскомУчете);
			//Результат = Запрос.Выполнить();
			if(true/*НЕ Результат.Пустой()*/)
			{
				//Выборка = Результат.Выбрать();
				//Выборка.Следующий();
				//ДокументОбъект = Выборка.Ссылка.ПолучитьОбъект();
			}
			//ДокументОбъект.ВыполняемыеДействия.Загрузить(СтруктураПараметров.ВыполняемыеДействия);
			if(true/*ДокументОбъект.Проведен*/)
			{
				//ДокументОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
			}
			//Отказ = Ложь;
			/*//Переменная используется при проведении документа.
*/
			/*//Т.к. вне транзакции могут проводиться только непроведенные документы, то движения очищать не нужно.
*/
			//ДокументОбъект.мУдалятьДвижения = Ложь;
			//ДокументОбъект.ОбработкаПроведения(Отказ,РежимПроведенияДокумента.Неоперативный);
			if(true/*НЕ Отказ*/)
			{
				/*//Если при выполнении процедуры ОбработкаПроведения() были добавлены движения в коллекцию Движения, то их нужно записать
*/
				//ДокументОбъект.Проведен = Истина;
				//ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
			}
		}
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//ОСНОВНЫЕ ПРОЦЕДУРЫ
		// Функция инициализирует структуру таблицы списания затрат
		//

		public object ПодготовитьТаблицуДляФормированияДвижений(/*СтруктураНаборовЗаписейПоВидамУчета, Источник*/)
		{
			//ТаблицаДляФормированияДвижений = Новый ТаблицаЗначений();
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("ИмяРегистра", Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(15)));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("ВыполнятьСписание", Новый ОписаниеТипов("Булево"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("ВыполнятьОприходование", Новый ОписаниеТипов("Булево"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("ВыполнятьДвижениеСписание", Новый ОписаниеТипов("Булево"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("ВыполнятьДвижениеОприходование", Новый ОписаниеТипов("Булево"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("ФормироватьПроводки", Новый ОписаниеТипов("Булево"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("РассчитыватьСуммы", Новый ОписаниеТипов("Булево"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("АналитикаВидаУчета", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиВидаУчета"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("АналитикаУчетаЗатрат", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиУчетаЗатрат"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("АналитикаУчетаПартий", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиУчетаПартий"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("АналитикаРаспределенияЗатрат", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиРаспределенияЗатрат"));
			//ОписаниеТиповКоличество = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3));
			//ОписаниеТиповСтоимость = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("Количество", ОписаниеТиповКоличество);
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("КоличествоНУ", ОписаниеТиповКоличество);
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("Стоимость", ОписаниеТиповСтоимость);
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("СтоимостьНУ", ОписаниеТиповСтоимость);
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("ПостояннаяРазница", ОписаниеТиповСтоимость);
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("КоличествоПолучатель", ОписаниеТиповКоличество);
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("КоличествоНУПолучатель", ОписаниеТиповКоличество);
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("СтоимостьПолучатель", ОписаниеТиповСтоимость);
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("СтоимостьНУПолучатель", ОписаниеТиповСтоимость);
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("ПостояннаяРазницаПолучатель", ОписаниеТиповСтоимость);
			//МассивТипов = Новый Массив;
			//МассивТипов.Добавить(Тип("ПеречислениеСсылка.КодыОперацийПартииТоваров"));
			//МассивТипов.Добавить(Тип("ПеречислениеСсылка.КодыОперацийПартииМатериаловВЭксплуатации"));
			//МассивТипов.Добавить(Тип("ПеречислениеСсылка.КодыОперацийВыпускПродукции"));
			//МассивТипов.Добавить(Тип("ПеречислениеСсылка.КодыОперацийЗатратыНаВыпускПродукции"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("КодОперации", Новый ОписаниеТипов(МассивТипов));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("КорАналитикаВидаУчета", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиВидаУчета, СправочникСсылка.КлючиАналитикиУчетаПрочихЗатрат"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("КорАналитикаУчетаЗатрат", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиУчетаЗатрат"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("КорАналитикаУчетаПартий", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиУчетаПартий"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("КорАналитикаРаспределенияЗатрат", Новый ОписаниеТипов("СправочникСсылка.КлючиАналитикиРаспределенияЗатрат"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("ХарактерЗатрат", Новый ОписаниеТипов("ПеречислениеСсылка.ХарактерЗатрат"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("ВидЗатрат", Новый ОписаниеТипов("ПеречислениеСсылка.ВидыЗатрат"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("Склад", Новый ОписаниеТипов("СправочникСсылка.Склады"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("СуммаВал", ОписаниеТиповСтоимость);
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("Валюта", Новый ОписаниеТипов("СправочникСсылка.Валюты"));
			if(true/*СтруктураНаборовЗаписейПоВидамУчета.Свойство("УчетЗатратРегл")*/)
			{
				/*//Дополнительные реквизиты, которые могут не отражаться в регистре "Учет затрат организаций" (в случае если не ведется партионный учет по складам) 
*/
				/*//но нужны для формирования проводок
*/
				//ТаблицаДляФормированияДвижений.Колонки.Добавить("СкладПолучатель", Новый ОписаниеТипов("СправочникСсылка.Склады"));
			}
			if(true/*ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.ПередачаМатериаловВЭксплуатацию")
	 ИЛИ ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.СписаниеМатериаловИзЭксплуатации")*/)
			{
				//ТаблицаДляФормированияДвижений.Колонки.Добавить("ОтражатьВУправленческомУчете", Новый ОписаниеТипов("Булево"));
				//ТаблицаДляФормированияДвижений.Колонки.Добавить("ОтражатьВБухгалтерскомУчете", Новый ОписаниеТипов("Булево"));
				//ТаблицаДляФормированияДвижений.Колонки.Добавить("ОтражатьВНалоговомУчете", Новый ОписаниеТипов("Булево"));
				//ТаблицаДляФормированияДвижений.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
				//МассивТипов = Новый Массив;
				//МассивТипов.Добавить(Тип("СправочникСсылка.СпособыОтраженияРасходовПоАмортизации"));
				//МассивТипов.Добавить(Тип("ДокументСсылка.СписаниеМатериаловИзЭксплуатации"));
				//ТаблицаДляФормированияДвижений.Колонки.Добавить("СпособОтраженияРасходов", Новый ОписаниеТипов(МассивТипов));
				//ТаблицаДляФормированияДвижений.Колонки.Добавить("СчетУчетаБУ", Новый ОписаниеТипов("ПланСчетовСсылка.Хозрасчетный"));
				//ТаблицаДляФормированияДвижений.Колонки.Добавить("СчетУчетаНУ", Новый ОписаниеТипов("ПланСчетовСсылка.Налоговый"));
			}
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("ДатаИсправительнойЗаписи", Новый ОписаниеТипов("Дата"));
			//ТаблицаДляФормированияДвижений.Колонки.Добавить("СчитатьРазницыПостоянными", Новый ОписаниеТипов("Булево"));
			return null;
		}
		// Процедура заполняет строку в таблице списания затрат
		//

		public void ЗаполнитьСтрокуВТаблицеДляФормированияДвижений(/*
	ТаблицаДляФормированияДвижений,
	ТекущаяСтрокаСписания,
	ТекущаяСтрокаОприходования,
	ИмяРегистра,
	КодОперацииПартийТоваров,
	Источник,
	АналитикаВидаУчета,
	АналитикаУчетаЗатрат,
	АналитикаУчетаПартий,
	АналитикаРаспределенияЗатрат,
	АналитикаВидаУчетаПолучатель,
	АналитикаУчетаЗатратПолучатель,
	АналитикаУчетаПартийПолучатель,
	АналитикаРаспределенияЗатратПолучатель
	*/)
		{
			//НоваяСтрока = ТаблицаДляФормированияДвижений.Добавить();
			//НоваяСтрока.ИмяРегистра = ИмяРегистра;
			//НоваяСтрока.ВыполнятьСписание = (НЕ ТекущаяСтрокаСписания = Неопределено);
			//НоваяСтрока.ВыполнятьДвижениеСписание = ?(НоваяСтрока.ВыполнятьСписание, ТекущаяСтрокаСписания.ВыполнятьДвижение,Ложь);
			//НоваяСтрока.ВыполнятьОприходование = (НЕ ТекущаяСтрокаОприходования = Неопределено);
			//НоваяСтрока.ВыполнятьДвижениеОприходование = ?(НоваяСтрока.ВыполнятьОприходование, ТекущаяСтрокаОприходования.ВыполнятьДвижение,Ложь);
			if(true/*НЕ ТекущаяСтрокаСписания = Неопределено*/)
			{
				//НоваяСтрока.РассчитыватьСуммы = ТекущаяСтрокаСписания.РассчитыватьСуммы;
			}
			if(true/*КодОперацииПартийТоваров = Перечисления.КодыОперацийПартииМатериаловВЭксплуатации.ПогашениеСтоимости*/)
			{
				//НоваяСтрока.ФормироватьПроводки = НоваяСтрока.ВыполнятьСписание;
			}
			//НоваяСтрока.КодОперации = КодОперацииПартийТоваров;
			/*//Кэширование информации для последующего формирования проводок
*/
			//НоваяСтрока.АналитикаВидаУчета = АналитикаВидаУчета;
			//НоваяСтрока.АналитикаУчетаЗатрат = АналитикаУчетаЗатрат;
			//НоваяСтрока.АналитикаУчетаПартий = АналитикаУчетаПартий;
			//НоваяСтрока.АналитикаРаспределенияЗатрат = АналитикаРаспределенияЗатрат;
			//НоваяСтрока.КорАналитикаВидаУчета = АналитикаВидаУчетаПолучатель;
			//НоваяСтрока.КорАналитикаУчетаЗатрат = АналитикаУчетаЗатратПолучатель;
			//НоваяСтрока.КорАналитикаУчетаПартий = АналитикаУчетаПартийПолучатель;
			//НоваяСтрока.КорАналитикаРаспределенияЗатрат = АналитикаРаспределенияЗатратПолучатель;
			if(true/*НЕ ТекущаяСтрокаСписания = Неопределено*/)
			{
				if(true/*ИмяРегистра = "УчетЗатратРегл"*/)
				{
					//НоваяСтрока.Склад = ТекущаяСтрокаСписания.СкладДляФормированияПроводок;
					//НоваяСтрока.СуммаВал = ТекущаяСтрокаСписания.СуммаВал;
					//НоваяСтрока.Валюта = ТекущаяСтрокаСписания.Валюта;
				}
				//НоваяСтрока.Количество = ТекущаяСтрокаСписания.Количество;
				//НоваяСтрока.Стоимость = ТекущаяСтрокаСписания.Стоимость;
				//НоваяСтрока.КоличествоНУ = ТекущаяСтрокаСписания.КоличествоНУ;
				//НоваяСтрока.Стоимость = ТекущаяСтрокаСписания.Стоимость;
				//НоваяСтрока.СтоимостьНУ = ТекущаяСтрокаСписания.СтоимостьНУ;
				//НоваяСтрока.ПостояннаяРазница = ТекущаяСтрокаСписания.ПостояннаяРазница;
				/*// Запомним движения для расчета погашенной стоимости.
*/
				if(true/*ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.ПередачаМатериаловВЭксплуатацию")
		 ИЛИ ТипЗнч(Источник.Ссылка) = Тип("ДокументСсылка.СписаниеМатериаловИзЭксплуатации")*/)
				{
					//НоваяСтрока.Номенклатура = ТекущаяСтрокаСписания.Затрата;
					//НоваяСтрока.СпособОтраженияРасходов = ТекущаяСтрокаСписания.СпособОтраженияРасходов;
					if(true/*ИмяРегистра = "УчетЗатратРегл"*/)
					{
						//НоваяСтрока.СчетУчетаБУ = ТекущаяСтрокаСписания.СчетУчета;
						//НоваяСтрока.СчетУчетаНУ = ТекущаяСтрокаСписания.СчетУчетаНУ;
						//НоваяСтрока.ОтражатьВБухгалтерскомУчете = Истина;
						//НоваяСтрока.ОтражатьВНалоговомУчете = Источник.ОтражатьВНалоговомУчете;
					}
				}
			}
			if(true/*НЕ ТекущаяСтрокаОприходования = Неопределено*/)
			{
				if(true/*ИмяРегистра = "УчетЗатратРегл"*/)
				{
					//НоваяСтрока.СкладПолучатель = ТекущаяСтрокаОприходования.СкладДляФормированияПроводок;
				}
				//НоваяСтрока.ХарактерЗатрат = ТекущаяСтрокаОприходования.ХарактерЗатрат;
				//НоваяСтрока.ВидЗатрат = ТекущаяСтрокаОприходования.ВидЗатрат;
				//НоваяСтрока.КоличествоПолучатель = ТекущаяСтрокаОприходования.Количество;
				//НоваяСтрока.СтоимостьПолучатель = ТекущаяСтрокаОприходования.Стоимость;
				//НоваяСтрока.КоличествоНУПолучатель = ТекущаяСтрокаОприходования.КоличествоНУ;
				//НоваяСтрока.СтоимостьПолучатель = ТекущаяСтрокаОприходования.Стоимость;
				//НоваяСтрока.СтоимостьНУПолучатель = ТекущаяСтрокаОприходования.СтоимостьНУ;
				//НоваяСтрока.ПостояннаяРазницаПолучатель = ТекущаяСтрокаОприходования.ПостояннаяРазница;
			}
		}
		// Функция возвращает значения ресурса для записи в регистр по налоговому учету.
		// Если документ по налоговому учету не проводиться, то в соответствующие ресурсы всегда должен писаться 0
		//
		// Параметры:
		//  СтруктураШапкиДокумента - структура, содержащая реквизиты шапки документа,
		//  СтароеЗначениеРесурса - значение ресурса которое нужно писать в регистр, если документ проводиться по НУ.
		//
		// Возвращаемое значение:
		//  значение ресурса для записи в регистр.
		//

		public object ПолучитьРесурсДляНалоговогоУчета(/*СтруктураШапкиДокумента, СтароеЗначениеРесурса*/)
		{
			if(true/*СтруктураШапкиДокумента.Свойство("ОтражатьВНалоговомУчете")*/)
			{
				if(true/*СтруктураШапкиДокумента.ОтражатьВНалоговомУчете*/)
				{
				}
			}
			return null;
		}
		// Процедура добавляет движения в регистры учета затрат
		//
		// Параметры:
		//  СтруктураШапкиДокумента - структура, содержащая реквизиты шапки документа,
		//  ТекущаяСтрока - строка таблицы значений, описывающая затрату,
		//  ТекущийНабор - набор записей, в который добавляются записи по затратам.
		//

		public void СформироватьДвиженияПоСтрокеДляСписания(/*СтруктураШапкиДокумента,ТекущаяСтрока,ТекущийНабор*/)
		{
			/*//Формирование расходных движений по регистру УчетЗатрат или УчетЗатратРегл
*/
			if(true/*ТекущаяСтрока.ВыполнятьСписание И ТекущаяСтрока.ВыполнятьДвижениеСписание*/)
			{
				/*// АналитикаВидаУчета
*/
				/*// АналитикаУчетаЗатрат
*/
				/*// АналитикаУчетаПартий
*/
				/*// АналитикаУчетаВыпуска
*/
				/*// КорАналитикаВидаУчета
*/
				/*// КорАналитикаУчетаЗатрат
*/
				/*// КорАналитикаУчетаПартий
*/
				/*// КорАналитикаУчетаВыпуска
*/
				/*// ЗаписыватьДвижения
*/
				//);
			}
			if(true/*ТекущаяСтрока.ВыполнятьОприходование И ТекущаяСтрока.ВыполнятьДвижениеОприходование*/)
			{
				if(true/*ЗначениеЗаполнено(ТекущаяСтрока.ХарактерЗатрат)*/)
				{
					/*УчетЗатратПоНоменклатуре = РасширеннаяАналитикаУчета.УчитыватьЗатратыПоНоменклатуре(
				ТекущаяСтрока.ХарактерЗатрат,
				ТекущаяСтрока.ВидЗатрат
			);*/
				}
				/*// АналитикаВидаУчета
*/
				/*// АналитикаУчетаЗатрат
*/
				/*// АналитикаУчетаПартий
*/
				/*// АналитикаУчетаВыпуска
*/
				/*// КорАналитикаВидаУчета
*/
				/*// КорАналитикаУчетаЗатрат
*/
				/*// КорАналитикаУчетаПартий
*/
				/*// КорАналитикаУчетаВыпуска
*/
				/*// ЗаписыватьДвижения
*/
				//);
			}
		}
		// Процедура расчитывает стоимость списания по затратам
		// Параметры:
		//  СтруктураШапкиДокумента - структура, содержащая реквизиты шапки документа,
		//  ТаблицаДляФормированияДвижений - таблица значений, содержащая перечень списываемых затрат,
		//  СтруктураНаборовЗаписейПоВидамУчета - структура, содержащая перечень регистров, по которым производиться списание.
		//

		public void ЗаполнитьСуммыВДвижениях(/*СтруктураШапкиДокумента, ТаблицаДляФормированияДвижений, СтруктураНаборовЗаписейПоВидамУчета*/)
		{
		}
		// Процедура сворачивает таблицу для формирования движений по регистрам учета затрат
		// Параметры:
		//  ТаблицаДляФормированияДвижений - таблица значений для формирования движений.
		//

		public void СвернутьТаблицуДляФормированияДвижений(/*ТаблицаДляФормированияДвижений*/)
		{
			//СписокСуммируемыхКолонок = "Количество, КоличествоНУ, Стоимость, СтоимостьНУ, ПостояннаяРазница, КоличествоПолучатель, КоличествоНУПолучатель, СтоимостьПолучатель, СтоимостьНУПолучатель, ПостояннаяРазницаПолучатель,";
			//СписокКолонокДляГруппировки = "";
			/*//Удалим последнюю запятую
*/
			//СписокСуммируемыхКолонок = Лев(СписокСуммируемыхКолонок, СтрДлина(СписокСуммируемыхКолонок)-1);
			//СписокКолонокДляГруппировки = Лев(СписокКолонокДляГруппировки, СтрДлина(СписокКолонокДляГруппировки)-1);
			//ТаблицаДляФормированияДвижений.Свернуть(СписокКолонокДляГруппировки,СписокСуммируемыхКолонок);
			/*//Удалим движения с одинаковой аналитикой источника и получателя
*/
			//НомерТекущейСтроки = 0;
			while(true/*НомерТекущейСтроки < ТаблицаДляФормированияДвижений.Количество()*/)
			{
				//ТекущаяСтрока = ТаблицаДляФормированияДвижений[НомерТекущейСтроки];
				if(true/*ТекущаяСтрока.АналитикаВидаУчета = ТекущаяСтрока.КорАналитикаВидаУчета
		  И ТекущаяСтрока.АналитикаРаспределенияЗатрат = ТекущаяСтрока.КорАналитикаРаспределенияЗатрат
		  И ТекущаяСтрока.АналитикаУчетаЗатрат = ТекущаяСтрока.КорАналитикаУчетаЗатрат
		  И ТекущаяСтрока.АналитикаУчетаПартий = ТекущаяСтрока.КорАналитикаУчетаПартий 
		  И ТекущаяСтрока.Количество = ТекущаяСтрока.КоличествоПолучатель*/)
				{
					if(true/*ТаблицаДляФормированияДвижений.Колонки.Найти("Склад") <> Неопределено
			И ТаблицаДляФормированияДвижений.Колонки.Найти("СкладПолучатель") <> Неопределено  
			И ТекущаяСтрока.Склад <> ТекущаяСтрока.СкладПолучатель*/)
					{
						/*//Это перемещение между складами когда партионный учет по складам не ведется, строки нужно оставить для формирования проводки
*/
						//ТекущаяСтрока.ВыполнятьДвижениеОприходование = Ложь;
						//ТекущаяСтрока.ВыполнятьДвижениеСписание = Ложь;
						//НомерТекущейСтроки = НомерТекущейСтроки + 1;
					}
				}
			}
			//;;
		}
		// Процедура - 	обработчик, вызывается подпиской на событие "ПриПроведенииРасширеннаяАналитикаЗапасовИзменениеСостояния".
		//				Содержит общий алгоритм формриования движений по регистрам "Учет затрат" и "Учет затрат организаций"
		// Параметры:
		//  Источник - структура или ДокументОбъект, содержащая реквизиты необходимы для проведения по затратам,
		//  Отказ - флаг, устанавливается в случае если произошла ошибка,
		//  РежимПроведения - режим проведения документа.
		//

		public void РасширеннаяАналитикаЗапасовИзменениеСостояния(/*Источник, Отказ, РежимПроведения*/)
		{
			if(true/*ТипЗнч(Источник.мСтруктураШапкиДокумента) = Тип("Структура")*/)
			{
				if(true/*(Источник.мСтруктураШапкиДокумента.Свойство("ДокументОтгрузки") И ТипЗнч(Источник.мСтруктураШапкиДокумента.ДокументОтгрузки) = Тип("ДокументСсылка.ПередачаОС"))
			ИЛИ (ТипЗнч(Источник.мСтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.КорректировкаПоступления") И НЕ Источник.мСтруктураШапкиДокумента.КорректироватьБУиНУ)
			ИЛИ (ТипЗнч(Источник.мСтруктураШапкиДокумента.Ссылка) = Тип("ДокументСсылка.КорректировкаРеализации")  И НЕ Источник.мСтруктураШапкиДокумента.КорректироватьБУиНУ)*/)
				{
					/*// Формировать движения по изменению состояния запасов не нужно
*/
				}
			}
			//ДополнитьСтруктуруШапкиДополнительнымиПолямиУчетаЗатрат(Источник.мСтруктураШапкиДокумента);
			//СтруктураНаборовЗаписейПоВидамУчета = ПолучитьСтруктуруНаборовЗаписейПоВидамУчета(Источник);
			/*//Создадим таблицу значений, в которой будет кэшироваться информация для последующего формирования проводок
*/
			//ТаблицаДляФормированияДвижений = ПодготовитьТаблицуДляФормированияДвижений(СтруктураНаборовЗаписейПоВидамУчета, Источник);
			/*//Формирование движений по регистрам учета затрат и подготовка таблицы проводок
*/
			//СвернутьТаблицуДляФормированияДвижений(ТаблицаДляФормированияДвижений);
			//ТаблицаДляФормированияПроводок = ТаблицаДляФормированияДвижений.СкопироватьКолонки();
			//ЗаполнитьСуммыВДвижениях(Источник.мСтруктураШапкиДокумента,ТаблицаДляФормированияДвижений, СтруктураНаборовЗаписейПоВидамУчета);
			/*//формирование движений по управленческим аналитическим регистрам
*/
			if(true/*СтруктураНаборовЗаписейПоВидамУчета.Свойство("УчетЗатрат")*/)
			{
				/*СформироватьДвиженияПоАналитическимРегистрам(
					СтруктураНаборовЗаписейПоВидамУчета.УчетЗатрат,
					Источник.Ссылка,
					Отказ,
					Источник.Дата,
					СтруктураКлючиАналитики,
					Источник.Движения,
					Перечисления.ВидыОтраженияВУчете.ОтражатьВУправленческомУчете);*/
			}
			/*//формирование движений по регламентированным аналитическим регистрам
*/
			if(true/*СтруктураНаборовЗаписейПоВидамУчета.Свойство("УчетЗатратРегл")*/)
			{
				/*СформироватьДвиженияПоАналитическимРегистрам(
					СтруктураНаборовЗаписейПоВидамУчета.УчетЗатратРегл,
					Источник.Ссылка,
					Отказ,
					Источник.Дата,
					СтруктураКлючиАналитики,
					Источник.Движения,
					Перечисления.ВидыОтраженияВУчете.ОтражатьВБухгалтерскомУчете);*/
				/*СформироватьДвиженияПоАналитическимРегистрам(
					СтруктураНаборовЗаписейПоВидамУчета.УчетЗатратРегл,
					Источник.Ссылка,
					Отказ,
					Источник.Дата,
					СтруктураКлючиАналитики,
					Источник.Движения,
					Перечисления.ВидыОтраженияВУчете.ОтражатьВНалоговомУчете);*/
			}
			/*//формирование дополнительных движений по регистрам учета затрат
*/
			/*СформироватьДополнительныеДвиженияПоРегистрамУчетаЗатрат(
		Источник, 
		СтруктураНаборовЗаписейПоВидамУчета, 
		ТаблицаДляФормированияДвижений
	);*/
			/*//Формирование проводок
*/
			if(true/*НЕ СтруктураНаборовЗаписейПоВидамУчета.Свойство("УчетЗатратРегл") = Неопределено 
	  И ТаблицаДляФормированияПроводок.Количество() > 0*/)
			{
				//СтруктураПараметров = Новый Структура();
				//СтруктураПараметров.Вставить("ОтражатьВБухгалтерскомУчете",Источник.ОтражатьВБухгалтерскомУчете);
				//СтруктураПараметров.Вставить("ОтражатьВНалоговомУчете",Источник.ОтражатьВНалоговомУчете);
				//СтруктураПараметров.Вставить("Дата",Источник.Дата);
				//СтруктураПараметров.Вставить("Ссылка",Источник.Ссылка);
				if(true/*Не Источник.мСтруктураШапкиДокумента.Свойство("ПоддержкаПБУ18")*/)
				{
					//ПараметрыУчетнойПолитикиРегл = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(Источник.мСтруктураШапкиДокумента.Дата, Источник.мСтруктураШапкиДокумента.Организация, Ложь);
					if(true/*ЗначениеЗаполнено(ПараметрыУчетнойПолитикиРегл)*/)
					{
						//СтруктураПараметров.Вставить("ПоддержкаПБУ18", ПараметрыУчетнойПолитикиРегл.ПоддержкаПБУ18);
					}
				}
				//СтруктураПараметров.Вставить("Движения",Новый Структура());
				if(true/*СтруктураПараметров.ОтражатьВБухгалтерскомУчете*/)
				{
					//СтруктураПараметров.Движения.Вставить("Хозрасчетный",РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей());
					//СтруктураПараметров.Движения.Хозрасчетный.Отбор.Регистратор.Установить(СтруктураПараметров.Ссылка);
				}
				if(true/*СтруктураПараметров.ОтражатьВБухгалтерскомУчете*/)
				{
					//СтруктураПараметров.Движения.Вставить("Налоговый",РегистрыБухгалтерии.Налоговый.СоздатьНаборЗаписей());
					//СтруктураПараметров.Движения.Налоговый.Отбор.Регистратор.Установить(СтруктураПараметров.Ссылка);
				}
				//СформироватьПроводкиПоРезультатамСписания(СтруктураПараметров, ТаблицаДляФормированияПроводок,, Отказ, СтруктураКлючиАналитики);
				//СформироватьПроводкиПоСчету40(Источник.мСтруктураШапкиДокумента, СтруктураПараметров.Движения);
			}
			/*//Запись движений в БД
*/
			//ЗаписатьСтруктуруДвиженийВБазуДанных(СтруктураНаборовЗаписейПоВидамУчета);
			//ПодготовитьИсточникДляВозвратаКлиенту(Источник);
		}
		//ПриПроведенииРасширеннаяАналитикаЗапасовИзменениеСостоянияОбработкаПроведения()
	}
}
